Class: Wiretap::NodeMetaData

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/wiretap.rb,
ext/nodemetadata.cpp

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#nodeObject (readonly)

Returns the value of attribute node.



237
238
239
# File 'lib/wiretap.rb', line 237

def node
  @node
end

Instance Method Details

#[](*args) ⇒ Object

Get metadata by index



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'ext/nodemetadata.cpp', line 19

static VALUE wiretap_node_metadata_get_at(int argc, VALUE *argv, VALUE self) {
	WireTapNodeHandle* node;
	VALUE stream_name, filter, depth;
    
	rb_scan_args(argc, argv, "12", &stream_name, &filter, &depth);
	Check_Type(stream_name, T_STRING);
	if(filter != Qnil) {
		Check_Type(filter, T_STRING);
	}
	if(depth != Qnil) {
		Check_Type(depth, T_FIXNUM);
	}
	
	Data_Get_Struct(self, WireTapNodeHandle, node);
	
	WireTapStr data;
	NODERUN_E(node, node->getMetaData(CSTR(stream_name), filter == Qnil ? "all" : CSAFESTR(filter), depth == Qnil ? 0 : FIX2INT(depth), data));
	
	return wiretap_to_str(data);
}

#[]=(index, value) ⇒ Object

Set metadata at index



43
44
45
46
47
48
49
50
51
# File 'ext/nodemetadata.cpp', line 43

static VALUE wiretap_node_metadata_set_at(VALUE self, VALUE index, VALUE value) {
	WireTapNodeHandle* node;
	Data_Get_Struct(self, WireTapNodeHandle, node);
	Check_Type(index, T_STRING);
	Check_Type(value, T_STRING);

	NODERUN_E(node, node->setMetaData(CSTR(index), WireTapStr(CSTR(value))));
	return self;
}

#countObject

Get count of node metadata entries



8
9
10
11
12
13
14
# File 'ext/nodemetadata.cpp', line 8

static VALUE wiretap_node_metadata_count(VALUE self) {
	WireTapNodeHandle* node;
	int num;
	Data_Get_Struct(self, WireTapNodeHandle, node);
	NODERUN_E(node, node->getNumAvailableMetaDataStreams(num));
	return INT2FIX(num);
}

#eachObject

eval block on each metadata entry



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'ext/nodemetadata.cpp', line 56

static VALUE wiretap_node_metadata_each(VALUE self) {
	WireTapNodeHandle* node;
	int i, num;
	Data_Get_Struct(self, WireTapNodeHandle, node);
	NODERUN_E(node, node->getNumAvailableMetaDataStreams(num));

	for(i = 0; i < num; i++) {
		WireTapStr stream;
		NODERUN_E(node, node->getAvailableMetaDataStream(i, stream));
		
		WireTapStr data;
		NODERUN_E(node, node->getMetaData(stream.c_str(), "all", -1, data));
		rb_yield(rb_ary_new3(2, wiretap_to_str(stream), wiretap_to_str(data)));
	}
	return self;
}