+++ /dev/null
-#include <TBuffer.h>
-
-/* struct s_Buffer connected functions. */
-
-/* Constructs an new buffer.
- * If successful, the function returns a pointer to
- * the new buffer. Otherwise, the function returns
- * NULL.
- */
-Buffer_t Buffer_new(void)
-{
- Buffer_t buffer = (Buffer_t) calloc(1, sizeof(s_Buffer_t));
-
- if (NULL == buffer) {
- setErrno(E_BUFFER_ALLOCATION_FAILED);
- return NULL;
- }
-
- buffer->data = (char *) calloc(1, DEFAULT_Buffer_CAPACITY);
-
-
- if (NULL == buffer->data) {
- Buffer_free(buffer);
- setErrno(E_BUFFER_DATA_ALLOCATION_FAILED);
- return NULL;
- }
-
- buffer->capacity = DEFAULT_Buffer_CAPACITY;
- Buffer_clear(buffer);
- return buffer;
-}
-
-/* Clears the buffer (this function don't destroy it,
- * see Buffer_free function.).
- */
-void Buffer_clear(Buffer_t buffer)
-{
- /* must be a valid buffer. */
- ASSERT_VALID_Buffer(buffer);
-
- buffer->size = 0;
- buffer->data[0] = '\n';
- buffer->data[1] = '\0';
-}
-
-/* Appends a string in the buffer. If successful,
- * the function returns true. Otherwise the function
- * returns false.
- */
-bool Buffer_append(Buffer_t buffer, char *str)
-{
- size_t len = strlen(str);
- size_t capacity_needed = buffer->size + len + 1;
- size_t capacity_available = buffer->capacity - buffer->size;
-
- /* must be a valid buffer. */
- ASSERT_VALID_Buffer(buffer);
- /* must be a valid string. */
- ASSERT_NOT_NULL(str);
-
- if (capacity_available < capacity_needed) {
- buffer->data = (char *) realloc(buffer->data, capacity_needed);
-
- if (NULL == buffer->data) {
- setErrno(E_Buffer_DATA_REALLOCATION_FAILED);
- return false;
- }
-
- buffer->capacity = capacity_needed;
- }
-
- strcpy(buffer->data + buffer->size, str);
- buffer->size += len; /* + 1 */ ;
-
- return true;
-}
-
-/*
- * Removes all the linefeed from the buffer.
- */
-void Buffer_chomp(Buffer_t buffer)
-{
- /* must be a valid buffer. */
- ASSERT_VALID_Buffer(buffer);
-
- while ((buffer->data[buffer->size - 1] == '\n')
- || (buffer->data[buffer->size - 1] == '\r')) {
- buffer->data[buffer->size - 1] = '\0';
-
- if (buffer->size)
- (buffer->size)--;
- }
-}
-
-/*
- * Destroy the buffer.
- */
-void Buffer_free(Buffer_t buffer)
-{
- if (NULL == buffer)
- return;
-
- if (NULL != buffer->data)
- free(buffer->data);
-
- if (NULL != buffer)
- free(buffer);
-}
-
-/*
- * This function returns true is the buffer is empty.
- * Otherwrise the function returns false.
- */
-bool Buffer_empty(Buffer_t buffer)
-{
- /* must be a valid buffer. */
- ASSERT_VALID_Buffer(buffer);
- return (buffer->size) == 0;
-}