コード例 #1
0
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);

}
コード例 #2
0
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;
}
コード例 #3
0
ファイル: rbsigar.c プロジェクト: mdkent/sigar
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;
}