who bindings
This commit is contained in:
parent
e0063abf7b
commit
bd2ef09744
|
@ -740,7 +740,28 @@ my %classes = (
|
||||||
plat => 'L'
|
plat => 'L'
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
Who => [
|
||||||
|
{
|
||||||
|
name => 'user', type => 'String',
|
||||||
|
desc => '',
|
||||||
|
plat => ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name => 'device', type => 'String',
|
||||||
|
desc => '',
|
||||||
|
plat => ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name => 'host', type => 'String',
|
||||||
|
desc => '',
|
||||||
|
plat => ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name => 'time', type => 'Long',
|
||||||
|
desc => '',
|
||||||
|
plat => ''
|
||||||
|
},
|
||||||
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
my %cmds = (
|
my %cmds = (
|
||||||
|
@ -1013,7 +1034,7 @@ EOF
|
||||||
my %has_name_arg = map { $_, 1 } qw(FileSystemUsage FileAttrs DirStat
|
my %has_name_arg = map { $_, 1 } qw(FileSystemUsage FileAttrs DirStat
|
||||||
NetInterfaceConfig NetInterfaceStat);
|
NetInterfaceConfig NetInterfaceStat);
|
||||||
my %proc_no_arg = map { $_, 1 } qw(stat);
|
my %proc_no_arg = map { $_, 1 } qw(stat);
|
||||||
my %get_not_impl = map { $_, 1 } qw(net_route net_connection
|
my %get_not_impl = map { $_, 1 } qw(net_route net_connection who
|
||||||
cpu_info file_system); #list funcs only
|
cpu_info file_system); #list funcs only
|
||||||
|
|
||||||
my %field_cache;
|
my %field_cache;
|
||||||
|
|
|
@ -760,6 +760,37 @@ JNIEXPORT jstring SIGAR_JNI(NetConnection_getTypeString)
|
||||||
sigar_net_connection_type_get(type));
|
sigar_net_connection_type_get(type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jobjectArray SIGAR_JNI(Sigar_getWhoList)
|
||||||
|
(JNIEnv *env, jobject sigar_obj)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
unsigned int i;
|
||||||
|
sigar_who_list_t wholist;
|
||||||
|
jobjectArray whoarray;
|
||||||
|
jclass cls = SIGAR_FIND_CLASS("Who");
|
||||||
|
dSIGAR(NULL);
|
||||||
|
|
||||||
|
if ((status = sigar_who_list_get(sigar, &wholist)) != SIGAR_OK) {
|
||||||
|
sigar_throw_error(env, jsigar, status);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
JAVA_SIGAR_INIT_FIELDS_WHO(cls);
|
||||||
|
|
||||||
|
whoarray = JENV->NewObjectArray(env, wholist.number, cls, 0);
|
||||||
|
|
||||||
|
for (i=0; i<wholist.number; i++) {
|
||||||
|
jobject info_obj = JENV->AllocObject(env, cls);
|
||||||
|
JAVA_SIGAR_SET_FIELDS_WHO(cls, info_obj,
|
||||||
|
wholist.data[i]);
|
||||||
|
JENV->SetObjectArrayElement(env, whoarray, i, info_obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
sigar_who_list_destroy(sigar, &wholist);
|
||||||
|
|
||||||
|
return whoarray;
|
||||||
|
}
|
||||||
|
|
||||||
/* XXX perhaps it would be better to duplicate these strings
|
/* XXX perhaps it would be better to duplicate these strings
|
||||||
* in java land as static final so we dont create a new String
|
* in java land as static final so we dont create a new String
|
||||||
* everytime.
|
* everytime.
|
||||||
|
|
Loading…
Reference in New Issue