Ejemplo n.º 1
0
static VALUE Unpacker_alloc(VALUE klass)
{
    msgpack_unpacker_t* uk = ALLOC_N(msgpack_unpacker_t, 1);
    msgpack_unpacker_init(uk);

    VALUE self = Data_Wrap_Struct(klass, msgpack_unpacker_mark, Unpacker_free, uk);

    uk->buffer_ref = MessagePack_Buffer_wrap(UNPACKER_BUFFER_(uk), self);

    return self;
}
Ejemplo n.º 2
0
static VALUE Packer_alloc(VALUE klass)
{
    msgpack_packer_t* pk = ALLOC_N(msgpack_packer_t, 1);
    msgpack_packer_init(pk);

    VALUE self = Data_Wrap_Struct(klass, msgpack_packer_mark, Packer_free, pk);

    msgpack_packer_set_to_msgpack_method(pk, s_to_msgpack, self);
    pk->buffer_ref = MessagePack_Buffer_wrap(PACKER_BUFFER_(pk), self);

    return self;
}
Ejemplo n.º 3
0
static mrb_value Packer_alloc(mrb_state* mrb, struct RClass *klass)
{
  mrb_value klass_value;
  mrb_value data;

  msgpack_packer_t* pk = (msgpack_packer_t *)mrb_malloc(mrb, sizeof(msgpack_packer_t));
  msgpack_packer_init(mrb, pk);

  data = mrb_obj_value(Data_Wrap_Struct(mrb, klass, &mrb_data_type_msgpack_packer_t, (void *)pk));

  klass_value = mrb_obj_value(klass);
  mrb_iv_set(mrb, klass_value, sym_pack_data, data);
  pk->buffer_ref = MessagePack_Buffer_wrap(mrb, PACKER_BUFFER_(pk), data);

  return klass_value;
}