binding for native net_stat
This commit is contained in:
		
							parent
							
								
									6ff7de288c
								
							
						
					
					
						commit
						8091316504
					
				@ -824,6 +824,43 @@ JNIEXPORT jobjectArray SIGAR_JNI(Sigar_getNetConnectionList)
 | 
				
			|||||||
    return connarray;
 | 
					    return connarray;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__linux__) /* XXX other platforms need sigar_net_connection_walker */
 | 
				
			||||||
 | 
					JNIEXPORT void SIGAR_JNI(NetStat_nstat)
 | 
				
			||||||
 | 
					(JNIEnv *env, jobject obj, jobject sigar_obj, jint flags)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int status;
 | 
				
			||||||
 | 
					    sigar_net_stat_t netstat;
 | 
				
			||||||
 | 
					    jclass cls;
 | 
				
			||||||
 | 
					    jfieldID id;
 | 
				
			||||||
 | 
					    jintArray states;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dSIGAR_VOID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    status = sigar_net_stat_get(sigar, &netstat, flags);
 | 
				
			||||||
 | 
					    if (status != SIGAR_OK) {
 | 
				
			||||||
 | 
					        sigar_throw_error(env, jsigar, status);
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    cls = JENV->GetObjectClass(env, obj);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    id = JENV->GetFieldID(env, cls, "tcpInboundTotal", "I");
 | 
				
			||||||
 | 
					    JENV->SetIntField(env, obj, id, netstat.tcp_inbound_total);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    id = JENV->GetFieldID(env, cls, "tcpOutboundTotal", "I");
 | 
				
			||||||
 | 
					    JENV->SetIntField(env, obj, id, netstat.tcp_outbound_total);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    states = JENV->NewIntArray(env, SIGAR_TCP_UNKNOWN);
 | 
				
			||||||
 | 
					    JENV->SetIntArrayRegion(env, states, 0,
 | 
				
			||||||
 | 
					                            SIGAR_TCP_UNKNOWN, netstat.tcp_states);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    id = JENV->GetFieldID(env, cls, "tcpStates", "[I");
 | 
				
			||||||
 | 
					    JENV->SetObjectField(env, obj, id, states);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
JNIEXPORT jstring SIGAR_JNI(NetConnection_getTypeString)
 | 
					JNIEXPORT jstring SIGAR_JNI(NetConnection_getTypeString)
 | 
				
			||||||
(JNIEnv *env, jobject obj)
 | 
					(JNIEnv *env, jobject obj)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user