static VALUE method_exists(VALUE self, VALUE path, VALUE watch) { struct Stat stat; Check_Type(path, T_STRING); FETCH_DATA_PTR(self, zk); check_errors(zoo_exists(zk->zh, RSTRING(path)->ptr, (watch != Qfalse && watch != Qnil), &stat)); return array_from_stat(&stat); }
static VALUE method_exists(VALUE self, VALUE path, VALUE watch) { struct zk_rb_data* zk; struct Stat stat; Check_Type(path, T_STRING); Data_Get_Struct(rb_iv_get(self, "@data"), struct zk_rb_data, zk); check_errors(zoo_exists(zk->zh, RSTRING(path)->ptr, (watch != Qfalse && watch != Qnil), &stat)); return array_from_stat(&stat); }
static VALUE method_get(VALUE self, VALUE path) { struct zk_rb_data* zk; char data[1024]; int data_len = 1024; struct Stat stat; Check_Type(path, T_STRING); Data_Get_Struct(rb_iv_get(self, "@data"), struct zk_rb_data, zk); check_errors(zoo_get(zk->zh, RSTRING(path)->ptr, 0, data, &data_len, &stat)); /*printf("got some data; version=%d\n", stat.version);*/ return rb_ary_new3(2, rb_str_new(data, data_len), array_from_stat(&stat)); }
static VALUE method_get(VALUE self, VALUE path) { char data[1024]; int data_len = sizeof(data); struct Stat stat; memset(data, 0, sizeof(data)); Check_Type(path, T_STRING); FETCH_DATA_PTR(self, zk); check_errors(zoo_get(zk->zh, RSTRING(path)->ptr, 0, data, &data_len, &stat)); return rb_ary_new3(2, rb_str_new(data, data_len), array_from_stat(&stat)); }