mirror of
https://github.com/servalproject/serval-dna.git
synced 2024-12-18 20:57:56 +00:00
Move JNI setInstancePath() into own source file
This commit is contained in:
parent
a3f3de571a
commit
42f62d2b8b
15
Makefile.in
15
Makefile.in
@ -32,23 +32,31 @@ SERVAL_DAEMON_OBJS = \
|
||||
$(addprefix $(OBJSDIR_SERVALD)/, $(SERVAL_CLIENT_SOURCES:.c=.o)) \
|
||||
$(addprefix $(OBJSDIR_SERVALD)/, $(MDP_CLIENT_SOURCES:.c=.o)) \
|
||||
$(addprefix $(OBJSDIR_SERVALD)/, $(SERVAL_DAEMON_SOURCES:.c=.o))
|
||||
ifeq (@HAVE_JNI_H@,yes)
|
||||
SERVAL_DAEMON_OBJS += \
|
||||
|
||||
SERVAL_DAEMON_JNI_OBJS = \
|
||||
$(addprefix $(OBJSDIR_SERVALD)/, $(SERVAL_DAEMON_JNI_SOURCES:.c=.o))
|
||||
|
||||
ifeq (@HAVE_JNI_H@,yes)
|
||||
SERVAL_DAEMON_OBJS += $(SERVAL_DAEMON_JNI_OBJS)
|
||||
endif
|
||||
|
||||
SQLITE3_OBJS = \
|
||||
$(addprefix $(OBJSDIR_SERVALD)/, $(notdir $(SQLITE3_SOURCES:.c=.o)))
|
||||
|
||||
SERVALD_OBJS = \
|
||||
$(SQLITE3_OBJS) \
|
||||
$(SERVAL_DAEMON_OBJS)
|
||||
|
||||
LIB_SERVAL_OBJS = \
|
||||
$(addprefix $(OBJSDIR_LIB)/, $(SERVAL_CLIENT_SOURCES:.c=.o)) \
|
||||
$(addprefix $(OBJSDIR_LIB)/, $(CLIENT_ONLY_SOURCES:.c=.o)) \
|
||||
$(addprefix $(OBJSDIR_LIB)/, $(MDP_CLIENT_SOURCES:.c=.o))
|
||||
|
||||
MONITOR_CLIENT_OBJS = \
|
||||
$(addprefix $(OBJSDIR_LIB)/, $(SERVAL_CLIENT_SOURCES:.c=.o)) \
|
||||
$(addprefix $(OBJSDIR_LIB)/, $(CLIENT_ONLY_SOURCES:.c=.o)) \
|
||||
$(addprefix $(OBJSDIR_LIB)/, $(MONITOR_CLIENT_SRCS:.c=.o))
|
||||
|
||||
SIMULATOR_OBJS = \
|
||||
$(addprefix $(OBJSDIR_TOOLS)/, $(SIMULATOR_SOURCES:.c=.o))
|
||||
|
||||
@ -236,8 +244,7 @@ libservald.a: $(SERVALD_OBJS) \
|
||||
|
||||
libservald.so: \
|
||||
$(OBJSDIR_SERVALD)/servald_features.o \
|
||||
$(OBJSDIR_SERVALD)/jni_commandline.o \
|
||||
$(OBJSDIR_SERVALD)/jni_server.o \
|
||||
$(SERVAL_DAEMON_JNI_OBJS) \
|
||||
libservald.a
|
||||
@echo LINK $@
|
||||
@$(CC) -Wall -shared -o $@ $^ $(LDFLAGS)
|
||||
|
24
instance.c
24
instance.c
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Serval DNA instance directory path
|
||||
Copyright (C) 2012 Serval Project Inc.
|
||||
Serval DNA instance paths
|
||||
Copyright (C) 2012-2015 Serval Project Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
@ -18,21 +18,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#ifdef HAVE_JNI_H
|
||||
#include <jni.h>
|
||||
|
||||
// Stop OpenJDK 7 from foisting their UNUSED() macro on us in <jni_md.h>
|
||||
#ifdef UNUSED
|
||||
# undef UNUSED
|
||||
#endif
|
||||
#endif
|
||||
#include "instance.h"
|
||||
#include "str.h"
|
||||
#include "os.h"
|
||||
#include "strbuf.h"
|
||||
#include "strbuf_helpers.h"
|
||||
|
||||
|
||||
/*
|
||||
* A default INSTANCE_PATH can be set on the ./configure command line, eg:
|
||||
*
|
||||
@ -104,19 +95,12 @@ const char *instance_path()
|
||||
return instancepath;
|
||||
}
|
||||
|
||||
#ifdef HAVE_JNI_H
|
||||
JNIEXPORT jint JNICALL Java_org_servalproject_servaldna_ServalDCommand_setInstancePath(
|
||||
JNIEnv *env, jobject UNUSED(this), jobject path)
|
||||
void set_instance_path(const char *path)
|
||||
{
|
||||
const char *cpath = (*env)->GetStringUTFChars(env, path, NULL);
|
||||
instancepath = strdup(cpath);
|
||||
instancepath = strdup(path);
|
||||
know_instancepath = 1;
|
||||
(*env)->ReleaseStringUTFChars(env, path, cpath);
|
||||
return (jint)0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static int vformf_path(struct __sourceloc __whence, strbuf b, const char *syspath, const char *fmt, va_list ap)
|
||||
{
|
||||
if (fmt)
|
||||
|
@ -1,6 +1,7 @@
|
||||
/*
|
||||
Serval DNA header file - system paths
|
||||
Copyright (C) 2014 Serval Project Inc.
|
||||
Serval DNA instance paths
|
||||
Copyright (C) 2014-2015 Serval Project Inc.
|
||||
Copyright (C) 2016 Flinders University
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
@ -25,6 +26,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#include "strbuf.h"
|
||||
|
||||
const char *instance_path(); // returns NULL if not using an instance path
|
||||
|
||||
void set_instance_path(const char *path);
|
||||
|
||||
int create_serval_instance_dir();
|
||||
|
||||
int _formf_serval_etc_path(struct __sourceloc, char *buf, size_t bufsiz, const char *fmt, ...) __attribute__((__ATTRIBUTE_format(printf,4,5)));
|
||||
|
31
jni_instance.c
Normal file
31
jni_instance.c
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
Serval DNA JNI instance directory path
|
||||
Copyright (C) 2016 Flinders University
|
||||
|
||||
This program 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 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program 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 program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include "jni_common.h"
|
||||
#include "instance.h"
|
||||
|
||||
JNIEXPORT jint JNICALL Java_org_servalproject_servaldna_ServalDCommand_setInstancePath(
|
||||
JNIEnv *env, jobject UNUSED(this), jobject path)
|
||||
{
|
||||
const char *cpath = (*env)->GetStringUTFChars(env, path, NULL);
|
||||
set_instance_path(cpath);
|
||||
(*env)->ReleaseStringUTFChars(env, path, cpath);
|
||||
return (jint)0;
|
||||
}
|
@ -124,6 +124,7 @@ SERVAL_DAEMON_SOURCES = \
|
||||
SERVAL_DAEMON_JNI_SOURCES = \
|
||||
jni_common.c \
|
||||
jni_commandline.c \
|
||||
jni_instance.c \
|
||||
jni_server.c
|
||||
|
||||
MDP_CLIENT_SOURCES = \
|
||||
|
Loading…
Reference in New Issue
Block a user