}
size_t pakfire_buffer_length(struct pakfire_buffer* self) {
- return self->used;
+ return self->length;
}
int pakfire_buffer_is_empty(struct pakfire_buffer* self) {
- return (self->used == 0);
+ return (self->length == 0);
}
int pakfire_buffer_is_full(struct pakfire_buffer* self) {
if (!self->max_length)
return 0;
- return (self->used >= self->max_length);
+ return (self->length >= self->max_length);
}
void pakfire_buffer_clear(struct pakfire_buffer* buffer) {
- buffer->used = 0;
+ buffer->length = 0;
}
void pakfire_buffer_free(struct pakfire_buffer* buffer) {
return -ENOBUFS;
// Don't make the buffer smaller than the used space
- if (length < self->used)
+ if (length < self->length)
return -EINVAL;
// Round up to the nearest chunk size
return -errno;
// Adjust the size
- self->length = length;
+ self->__allocated = length;
return 0;
}
// Grows the buffer
static int pakfire_buffer_grow(struct pakfire_buffer* self, size_t length) {
// Check if we actually need to grow
- if (self->length >= self->used + length)
+ if (self->__allocated >= self->length + length)
return 0;
- return pakfire_buffer_resize(self, self->used + length);
+ return pakfire_buffer_resize(self, self->length + length);
}
// Shrinks the buffer to its minimum size
static int pakfire_buffer_shrink(struct pakfire_buffer* self) {
// Shrink whenever we hit the wastage level
- if (self->length - self->used < MAX_WASTAGE)
+ if (self->__allocated - self->length < MAX_WASTAGE)
return 0;
- return pakfire_buffer_resize(self, self->used);
+ return pakfire_buffer_resize(self, self->length);
}
int pakfire_buffer_push(struct pakfire_buffer* self, const char* data, size_t length) {
return r;
// Copy the data
- memcpy(self->data + self->used, data, length);
- self->used += length;
+ memcpy(self->data + self->length, data, length);
+ self->length += length;
return length;
}
int pakfire_buffer_pop(struct pakfire_buffer* self, size_t length) {
// Check if we actually have enough data
- if (self->used < length)
+ if (self->length < length)
return -EINVAL;
- memmove(self->data, self->data + length, self->used - length);
- self->used -= length;
+ memmove(self->data, self->data + length, self->length - length);
+ self->length -= length;
// Shrink the buffer if we need to
return pakfire_buffer_shrink(self);
return r;
// Read into the buffer
- bytes_read = read(fd, self->data + self->used, self->length - self->used);
+ bytes_read = read(fd, self->data + self->length, self->__allocated - self->length);
if (bytes_read < 0)
return -errno;
total_bytes_read += bytes_read;
// We now use more space
- self->used += bytes_read;
+ self->length += bytes_read;
// If we have not filled the entire space, we have read everything for now
- if (self->used < self->length)
+ if (self->length < self->__allocated)
break;
}
int r;
// Do nothing if the buffer is empty
- if (!self->used)
+ if (!self->length)
return 0;
// Write as much data as possible
- bytes_written = write(fd, self->data, self->used);
+ bytes_written = write(fd, self->data, self->length);
if (bytes_written < 0)
return -errno;
return r;
// Call the callback
- bytes_written = callback(ctx, data, self->data + self->used, self->length - self->used);
+ bytes_written = callback(ctx, data, self->data + self->length, self->__allocated - self->length);
if (bytes_written < 0)
return bytes_written;
// Update the used space
- self->used += bytes_written;
+ self->length += bytes_written;
return bytes_written;
}
char* p = NULL;
// Nothing to do if there is no data
- if (!self->used)
+ if (!self->length)
return 0;
// Find the byte
- p = memchr(self->data, '\n', self->used);
+ p = memchr(self->data, '\n', self->length);
if (!p)
return 0;