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 (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->(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 (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->(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 (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 (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->(stream.c_str(), "all", -1, data));
    rb_yield(rb_ary_new3(2, wiretap_to_str(stream), wiretap_to_str(data)));
  }
  return self;
}