// Calculates the total number of bytes needed to store an event data. // // data - The event data item. size_t sky_event_data_sizeof(sky_event_data *data) { size_t sz = 0; sz += sizeof(data->key); switch(data->data_type) { case SKY_DATA_TYPE_INT: sz += minipack_sizeof_int(data->int_value); break; case SKY_DATA_TYPE_DOUBLE: sz += minipack_sizeof_double(data->double_value); break; case SKY_DATA_TYPE_BOOLEAN: sz += minipack_sizeof_bool(data->boolean_value); break; case SKY_DATA_TYPE_STRING: sz += minipack_sizeof_raw(blength(data->string_value)); sz += blength(data->string_value); break; default: sentinel("Invalid data type (%d) for event data", data->data_type); } return sz; error: return 0; }
// Calculates the total number of bytes needed to store the property. // // property - The property. // // Returns the number of bytes required to store the property. size_t sky_property_sizeof(sky_property *property) { size_t sz = 0; sz += minipack_sizeof_map(2); sz += minipack_sizeof_raw(strlen("id")) + strlen("id"); sz += minipack_sizeof_int(property->id); sz += minipack_sizeof_raw(strlen("type")) + strlen("type"); sz += minipack_sizeof_uint(property->type); sz += minipack_sizeof_raw(strlen("dataType")) + strlen("dataType"); sz += blength(property->data_type); sz += minipack_sizeof_raw(strlen("name")) + strlen("name"); sz += blength(property->name); return sz; }