Class: Puma::IOBuffer
Relationships & Source Files | |
Inherits: | Object |
Defined in: | ext/puma_http11/io_buffer.c |
Instance Method Summary
Instance Method Details
#<<(str)
[ GitHub ]# File 'ext/puma_http11/io_buffer.c', line 34
static VALUE buf_append(VALUE self, VALUE str) { struct buf_int* b; size_t used, str_len, new_size; Data_Get_Struct(self, struct buf_int, b); used = b->cur - b->top; StringValue(str); str_len = RSTRING_LEN(str); new_size = used + str_len; if(new_size > b->size) { size_t n = b->size + (b->size / 2); uint8_t* top; uint8_t* old; new_size = (n > new_size ? n : new_size + BUF_TOLERANCE); top = ALLOC_N(uint8_t, new_size); old = b->top; memcpy(top, old, used); b->top = top; b->cur = top + used; b->size = new_size; xfree(old); } memcpy(b->cur, RSTRING_PTR(str), str_len); b->cur += str_len; return self; }
#append(*args)
[ GitHub ]# File 'ext/puma_http11/io_buffer.c', line 69
static VALUE buf_append2(int argc, VALUE* argv, VALUE self) { struct buf_int* b; size_t used, new_size; int i; VALUE str; Data_Get_Struct(self, struct buf_int, b); used = b->cur - b->top; new_size = used; for(i = 0; i < argc; i++) { StringValue(argv[i]); str = argv[i]; new_size += RSTRING_LEN(str); } if(new_size > b->size) { size_t n = b->size + (b->size / 2); uint8_t* top; uint8_t* old; new_size = (n > new_size ? n : new_size + BUF_TOLERANCE); top = ALLOC_N(uint8_t, new_size); old = b->top; memcpy(top, old, used); b->top = top; b->cur = top + used; b->size = new_size; xfree(old); } for(i = 0; i < argc; i++) { long str_len; str = argv[i]; str_len = RSTRING_LEN(str); memcpy(b->cur, RSTRING_PTR(str), str_len); b->cur += str_len; } return self; }
#capacity
[ GitHub ]# File 'ext/puma_http11/io_buffer.c', line 129
static VALUE buf_capa(VALUE self) { struct buf_int* b; Data_Get_Struct(self, struct buf_int, b); return INT2FIX(b->size); }
#reset
[ GitHub ]# File 'ext/puma_http11/io_buffer.c', line 136
static VALUE buf_reset(VALUE self) { struct buf_int* b; Data_Get_Struct(self, struct buf_int, b); b->cur = b->top; return self; }
#to_s Also known as: #to_str
[ GitHub ]# File 'ext/puma_http11/io_buffer.c', line 115
static VALUE buf_to_str(VALUE self) { struct buf_int* b; Data_Get_Struct(self, struct buf_int, b); return rb_str_new((const char*)(b->top), b->cur - b->top); }
#to_str
Alias for #to_s.
#used
[ GitHub ]# File 'ext/puma_http11/io_buffer.c', line 122
static VALUE buf_used(VALUE self) { struct buf_int* b; Data_Get_Struct(self, struct buf_int, b); return INT2FIX(b->cur - b->top); }