add net_interface_list
This commit is contained in:
		
							parent
							
								
									f58f1b1891
								
							
						
					
					
						commit
						de46ae553d
					
				@ -58,6 +58,37 @@ static VALUE rb_sigar_new_list(char *data, unsigned long number,
 | 
				
			|||||||
    return av;
 | 
					    return av;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static VALUE rb_sigar_new_strlist(char **data, unsigned long number)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    unsigned long i;
 | 
				
			||||||
 | 
					    VALUE av = rb_ary_new2(number);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i=0; i<number; i++) {
 | 
				
			||||||
 | 
					        rb_ary_push(av, rb_str_new2(data[i]));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return av;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static VALUE rb_sigar_net_interface_list(VALUE obj)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int status;
 | 
				
			||||||
 | 
					    sigar_t *sigar = rb_sigar_get(obj);
 | 
				
			||||||
 | 
					    sigar_net_interface_list_t iflist;
 | 
				
			||||||
 | 
					    VALUE RETVAL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    status = sigar_net_interface_list_get(sigar, &iflist);
 | 
				
			||||||
 | 
					    if (status != SIGAR_OK) {
 | 
				
			||||||
 | 
					        RB_SIGAR_CROAK;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    RETVAL = rb_sigar_new_strlist(iflist.data, iflist.number);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sigar_net_interface_list_destroy(sigar, &iflist);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return RETVAL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static VALUE rb_cSigarNetStat;
 | 
					static VALUE rb_cSigarNetStat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static VALUE rb_sigar_net_stat(VALUE obj)
 | 
					static VALUE rb_sigar_net_stat(VALUE obj)
 | 
				
			||||||
@ -124,6 +155,7 @@ void Init_rbsigar(void)
 | 
				
			|||||||
    VALUE rclass = rb_define_class("Sigar", rb_cObject);
 | 
					    VALUE rclass = rb_define_class("Sigar", rb_cObject);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rb_define_method(rclass, "file_system_list", rb_sigar_file_system_list, 0);
 | 
					    rb_define_method(rclass, "file_system_list", rb_sigar_file_system_list, 0);
 | 
				
			||||||
 | 
					    rb_define_method(rclass, "net_interface_list", rb_sigar_net_interface_list, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rb_define_singleton_method(rclass, "new", rb_sigar_new, 0);
 | 
					    rb_define_singleton_method(rclass, "new", rb_sigar_new, 0);
 | 
				
			||||||
    rb_define_singleton_method(rclass, "format_size", rb_sigar_format_size, 1);
 | 
					    rb_define_singleton_method(rclass, "format_size", rb_sigar_format_size, 1);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user