void wpacket_write_binary(wpacket_t w,const void *value,uint32_t size) { assert(value); if(!w->raw) wpacket_write_uint32(w,size); wpacket_write(w,(int8_t*)value,size); }
void on_process_packet(struct connection *c,rpacket_t r) { uint32_t coro_id = rpacket_read_uint32(r); const char *function_name = rpacket_read_string(r); int32_t arg1 = rpacket_read_uint32(r); int32_t arg2 = rpacket_read_uint32(r); uint32_t i = 0; wpacket_t w = wpacket_create(SINGLE_THREAD,wpacket_allocator,64,0); wpacket_write_uint32(w,coro_id); if(strcmp(function_name,"sum") == 0) wpacket_write_uint32(w,arg1+arg2); else wpacket_write_uint32(w,arg1*arg2); assert(w); connection_send(c,w,NULL); rpacket_destroy(&r); }