IoObject *IoSQLite3_setTimeoutSeconds(IoSQLite3 *self, IoObject *locals, IoMessage *m) { /*doc SQLite3 setTimeoutSeconds(aNumber) Sets the open timeout to aNumber. If aNumber is 0, an open call will never timeout. Returns self. */ IoNumber *num = IoMessage_locals_numberArgAt_(m, locals, 0); IOASSERT(IoNumber_asDouble(num) >= 0, "SQLite timeout must be a positive number"); DATA(self)->timeoutSeconds = IoNumber_asDouble(num); return self; }
IoObject *IoCairoContext_setDash(IoCairoContext *self, IoObject *locals, IoMessage *m) { IoList *dashList = IoMessage_locals_valueArgAt_(m, locals, 0); double offset = IoMessage_locals_doubleArgAt_(m, locals, 1); List *list = 0; int dashCount = 0; double *dashes = 0; if (!ISNIL(dashList)) { list = IoList_rawList(dashList); dashCount = List_size(list); } if (dashCount > 0) { dashes = malloc(sizeof(double) * dashCount); LIST_FOREACH(list, i, number, dashes[i] = IoNumber_asDouble(number); );
// Serialize/Deserialize char *IoMemcached_serialize(IoMemcached *self, IoObject *locals, IoObject *object, size_t *size, uint32_t *flags) { char *cvalue; if(ISSEQ(object)) { *flags = _FLAG_SEQUENCE; *size = IOSEQ_LENGTH(object); cvalue = (char *) malloc(*size); strncpy(cvalue, CSTRING(object), *size); } else if(ISNUMBER(object)) { *flags = _FLAG_NUMBER; double cnumber = IoNumber_asDouble(object); cvalue = (char *) malloc(128 * sizeof(char)); *size = snprintf(cvalue, 127, "%.16f", cnumber); } else if(ISNIL(object)) { *flags = _FLAG_NIL; *size = 3; cvalue = (char *) malloc(3 * sizeof(char)); strncpy(cvalue, "nil", 3); } else if(ISBOOL(object)) { *flags = _FLAG_BOOLEAN; *size = 1; cvalue = (char *) malloc(sizeof(char)); if(object == IOSTATE->ioTrue) strncpy(cvalue, "1", 1); if(object == IOSTATE->ioFalse) strncpy(cvalue, "0", 1); } else { *flags = _FLAG_OBJECT; IoMessage *serialize = IoMessage_newWithName_(IOSTATE, IOSYMBOL("serialized")); IoSeq *serialized = IoMessage_locals_performOn_(serialize, locals, object); *size = IOSEQ_LENGTH(serialized); cvalue = (char *) malloc(*size); strncpy(cvalue, CSTRING(serialized), *size); } return cvalue; }
float IoMessage_locals_floatArgAt_(IoMessage *self, IoObject *locals, int n) { return (float)IoNumber_asDouble(IoMessage_locals_numberArgAt_(self, locals, n)); }
double IoMessage_locals_doubleArgAt_(IoMessage *self, IoObject *locals, int n) { return IoNumber_asDouble(IoMessage_locals_numberArgAt_(self, locals, n)); }
template <> struct IoListElemConv<double> { static double do_conv(IoNumber* obj) { return IoNumber_asDouble(obj); }};