Sha256: 90ec89bc508585305a1b91be6a8004706af35667447f8f54f5620b4fd561c8f7
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
#include "iou.h" VALUE cOpSpecData; static size_t OpSpecData_size(const void *ptr) { return sizeof(OpSpecData_t); } static const rb_data_type_t OpSpecData_type = { "OpSpecData", {0, 0, OpSpecData_size, 0}, 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED }; static VALUE OpSpecData_allocate(VALUE klass) { OpSpecData_t *osd = ALLOC(OpSpecData_t); return TypedData_Wrap_Struct(klass, &OpSpecData_type, osd); } VALUE OpSpecData_initialize(VALUE self) { OpSpecData_t *osd = RTYPEDDATA_DATA(self); memset(&osd->data, 0, sizeof(osd->data)); return self; } struct __kernel_timespec *OpSpecData_ts_get(VALUE self) { OpSpecData_t *osd = RTYPEDDATA_DATA(self); return &osd->data.ts; } inline struct __kernel_timespec double_to_timespec(double value) { double integral; double fraction = modf(value, &integral); struct __kernel_timespec ts; ts.tv_sec = integral; ts.tv_nsec = floor(fraction * 1000000000); return ts; } inline struct __kernel_timespec value_to_timespec(VALUE value) { return double_to_timespec(NUM2DBL(value)); } void OpSpecData_ts_set(VALUE self, VALUE value) { OpSpecData_t *osd = RTYPEDDATA_DATA(self); osd->data.ts = value_to_timespec(value); } struct sa_data *OpSpecData_sa_get(VALUE self) { OpSpecData_t *osd = RTYPEDDATA_DATA(self); return &osd->data.sa; } void Init_OpSpecData(void) { mIOU = rb_define_module("IOU"); cOpSpecData = rb_define_class_under(mIOU, "OpSpecData", rb_cObject); rb_define_alloc_func(cOpSpecData, OpSpecData_allocate); rb_define_method(cOpSpecData, "initialize", OpSpecData_initialize, 0); }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
iou-0.1 | ext/iou/op_spec_data.c |