serval-dna/java/org/servalproject/servald/ServalD.java
Andrew Bettison 5185c944c9 JNI interface returns byte[] instead of String
This allows the output fields of any command to contain nul characters, which
paves the way for extracting a manifest or other binary data directly instead
of having to write it into a temporary file.
2012-11-07 17:12:04 +10:30

54 lines
1.4 KiB
Java

/**
* Copyright (C) 2011 The Serval Project
*
* This file is part of Serval Software (http://www.servalproject.org)
*
* Serval Software is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This source code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this source code; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.servalproject.servald;
import java.util.List;
import java.util.LinkedList;
class ServalD
{
int status;
List<byte[]> outv;
public ServalD()
{
System.loadLibrary("servald");
}
public native int rawCommand(List<byte[]> outv, String... args);
public void command(String... args)
{
this.outv = new LinkedList<byte[]>();
this.status = this.rawCommand(this.outv, args);
}
public static void main(String[] args)
{
ServalD servald = new ServalD();
servald.command(args);
for (byte[] a: servald.outv) {
System.out.println(new String(a));
}
System.exit(servald.status);
}
}