Example #1
0
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;
}
Example #2
0
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);
		);
Example #3
0
// 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;
}
Example #4
0
float IoMessage_locals_floatArgAt_(IoMessage *self, IoObject *locals, int n)
{
	return (float)IoNumber_asDouble(IoMessage_locals_numberArgAt_(self, locals, n));
}
Example #5
0
double IoMessage_locals_doubleArgAt_(IoMessage *self, IoObject *locals, int n)
{
	return IoNumber_asDouble(IoMessage_locals_numberArgAt_(self, locals, n));
}
Example #6
0
template <> struct IoListElemConv<double> { static double do_conv(IoNumber* obj) { return IoNumber_asDouble(obj); }};