NetRouteInfo::NetRouteInfo() { sigar_t *sigar_route; sigar_net_route_list_t route_list; sigar_open(&sigar_route); int status = sigar_net_route_list_get(sigar_route,&route_list); if(status != SIGAR_OK) cout<<"Net Route Error: "<<status<<sigar_strerror(sigar_route,status); for(int i=0; i<route_list.number; i++) { sigar_net_route_t route = route_list.data[i]; cout<<route.mask.addr.in<<endl; } sigar_net_route_list_destroy(sigar_route,&route_list); sigar_close(sigar_route); }
JNIEXPORT jobjectArray SIGAR_JNIx(getNetRouteList) (JNIEnv *env, jobject sigar_obj) { int status; unsigned int i; jarray routearray; jclass cls = SIGAR_FIND_CLASS("NetRoute"); sigar_net_route_list_t routelist; dSIGAR(NULL); if ((status = sigar_net_route_list_get(sigar, &routelist)) != SIGAR_OK) { sigar_throw_error(env, jsigar, status); return NULL; } JAVA_SIGAR_INIT_FIELDS_NETROUTE(cls); routearray = JENV->NewObjectArray(env, routelist.number, cls, 0); SIGAR_CHEX; for (i=0; i<routelist.number; i++) { jobject obj = JENV->AllocObject(env, cls); SIGAR_CHEX; JAVA_SIGAR_SET_FIELDS_NETROUTE(cls, obj, routelist.data[i]); JENV->SetObjectArrayElement(env, routearray, i, obj); SIGAR_CHEX; } sigar_net_route_list_destroy(sigar, &routelist); return routearray; }
static VALUE rb_sigar_net_route_list(VALUE obj) { int status; sigar_t *sigar = rb_sigar_get(obj); sigar_net_route_list_t list; VALUE RETVAL; status = sigar_net_route_list_get(sigar, &list); if (status != SIGAR_OK) { RB_SIGAR_CROAK; } RETVAL = rb_sigar_new_list((char *)&list.data[0], list.number, sizeof(*list.data), rb_cSigarNetRoute); sigar_net_route_list_destroy(sigar, &list); return RETVAL; }