//will add reference count of b rawpacket *rawpacket_new_by_buffer(bytebuffer *b,uint32_t spos) { rawpacket *raw = calloc(1,sizeof(*raw)); cast(packet*,raw)->type = RAWPACKET; cast(packet*,raw)->head = b; cast(packet*,raw)->spos = spos; refobj_inc(cast(refobj*,b)); cast(packet*,raw)->len_packet = b->size - spos; buffer_writer_init(&raw->writer,b,b->size); INIT_CONSTROUCTOR(raw); return raw; }
//will add reference count of b rawpacket* rawpacket_new_by_buffer(bytebuffer *b,uint32_t spos) { rawpacket *raw = (rawpacket*)CALLOC(g_rawpk_allocator,1,sizeof(*raw)); ((packet*)raw)->type = RAWPACKET; ((packet*)raw)->head = b; ((packet*)raw)->spos = spos; refobj_inc((refobj*)b); ((packet*)raw)->len_packet = b->size - spos; buffer_writer_init(&raw->writer,b,b->size); INIT_CONSTROUCTOR(raw); return raw; }
rawpacket* rawpacket_new(uint32_t size) { size = size_of_pow2(size); if(size < MIN_BUFFER_SIZE) size = MIN_BUFFER_SIZE; bytebuffer *b = bytebuffer_new(size); rawpacket *raw = (rawpacket*)CALLOC(g_rawpk_allocator,1,sizeof(*raw)); ((packet*)raw)->type = RAWPACKET; ((packet*)raw)->head = b; buffer_writer_init(&raw->writer,b,0); INIT_CONSTROUCTOR(raw); return raw; }
rawpacket *rawpacket_new(uint32_t size) { bytebuffer *b; rawpacket *raw; size = size_of_pow2(size); if(size < MIN_BUFFER_SIZE) size = MIN_BUFFER_SIZE; b = bytebuffer_new(size); raw = calloc(1,sizeof(*raw)); cast(packet*,raw)->type = RAWPACKET; cast(packet*,raw)->head = b; buffer_writer_init(&raw->writer,b,0); INIT_CONSTROUCTOR(raw); return raw; }
wpacket* wpacket_new(uint16_t size) { size = size_of_pow2(size); if(size < MIN_BUFFER_SIZE) size = MIN_BUFFER_SIZE; bytebuffer *b = bytebuffer_new(size); wpacket *w = (wpacket*)CALLOC(g_wpk_allocator,1,sizeof(*w)); ((packet*)w)->type = WPACKET; ((packet*)w)->head = b; buffer_writer_init(&w->writer,b,sizeof(*w->len)); w->len = (TYPE_HEAD*)b->data; ((packet*)w)->len_packet = SIZE_HEAD; ((packet*)w)->head->size = SIZE_HEAD; INIT_CONSTROUCTOR(w); return w; }