Beispiel #1
0
void EventSerializer::serialize(std::ostream& stream, const TouchEvent& evt)
{
	switch (m_mode)
	{
	case Mode::Binary:
		return serializeBinary(stream, evt);
	case Mode::Json:
		return serializeJson(stream, evt);
	}
}
Beispiel #2
0
static cx_int16 serializePrimitive(cx_serializer s, cx_value *v, void *userData) {
    CX_UNUSED(s);
    cx_type type = cx_valueType(v);
    cx_json_ser_t *data = userData;
    cx_int16 result;
    cx_string valueString;

    switch (cx_primitive(type)->kind) {
        case CX_BINARY:
            result = serializeBinary(v, &valueString);
            break;
        case CX_BITMASK:
            result = serializeBitmask(v, &valueString);
            break;
        case CX_BOOLEAN:
            result = serializeBoolean(v, &valueString);
            break;
        case CX_ENUM:
            result = serializeEnum(v, &valueString);
            break;
        case CX_CHARACTER:
        case CX_TEXT:
            result = serializeText(v, &valueString);
            break;
        case CX_UINTEGER:
        case CX_INTEGER:
        case CX_FLOAT:
            result = serializeNumber(v, &valueString);
            break;
        case CX_ALIAS:
            result = serializeAlias(v, &valueString);
            break;
    }
    if (result) {
        goto error;
    }
    if (!cx_ser_appendstr(data, "%s", valueString)) {
        goto finished;
    }
    cx_dealloc(valueString);
    return 0;
finished:
    cx_dealloc(valueString);
    return 1;
error:
    return -1;
}