/**
- @file buf.c
- @brief See header for details
- $Revision$
- $HeadURL$
-*/
+ @file buf.c
+ @brief See header for details
+ $Revision$
+ $HeadURL$
+ */
#include <stdlib.h>
#include "buf.h"
void buf_free(buf_t* buf, int free_contents)
{
- if (NULL != buf)
- {
- buf_clear(buf,free_contents);
- free( buf->buffer );
- free( buf );
- }
+ buf_clear(buf,free_contents);
+ free( buf->buffer );
+ free( buf );
}
size_t buf_size(buf_t* buf)
{
- return (NULL == buf) ? (size_t)0 : (size_t)buf->size;
+ return (size_t)buf->size;
}
int buf_empty(buf_t* buf)
{
- return (NULL == buf) ? 1 : (buf->reads == buf->writes);
+ return (buf->reads == buf->writes);
}
int buf_full(buf_t* buf)
{
- int full = 1;
- if (NULL != buf)
- {
- full = !buf_empty(buf);
- full &= ((buf->reads % buf->size) == (buf->writes % buf->size));
- }
+ int full = !buf_empty(buf);
+ full &= ((buf->reads % buf->size) == (buf->writes % buf->size));
return full;
}
void buf_clear(buf_t* buf, int free_contents)
{
- if (NULL != buf)
+ if (free_contents)
{
- if (free_contents)
+ while ( !buf_empty(buf) )
{
- while ( !buf_empty(buf) )
- {
- free( buf_read(buf) );
- }
+ free( buf_read(buf) );
}
- buf->reads = 0;
- buf->writes = 0;
}
+ buf->reads = 0;
+ buf->writes = 0;
}
void* buf_read(buf_t* buf)
{
void* data = NULL;
- if ((NULL != buf) && !buf_empty(buf))
+ if (!buf_empty(buf))
{
data = buf->buffer[ buf->reads % buf->size ];
buf->reads++;
int buf_write(buf_t* buf, void* data)
{
int success = 0;
- if ((NULL != buf) && !buf_full(buf))
+ if (!buf_full(buf))
{
buf->buffer[ buf->writes % buf->size ] = data;
buf->writes++;
//-------------------------------------------------------------------------
// Test buf_free function
//-------------------------------------------------------------------------
- TEST(Verify_buf_free_does_nothing_when_pointer_is_NULL)
- {
- buf_free( NULL, 0 );
- }
-
TEST(Verify_buf_free_frees_the_buffer)
{
buf_free( buf_new(5), 0 );
//-------------------------------------------------------------------------
// Test buf_size function
//-------------------------------------------------------------------------
- TEST(Verify_buf_size_should_return_0_when_passed_NULL)
- {
- CHECK( 0 == buf_size(NULL) );
- }
-
TEST(Verify_buf_size_should_return_the_size_of_the_buffer)
{
buf_t* buf = buf_new(5);
//-------------------------------------------------------------------------
// Test buf_empty function
//-------------------------------------------------------------------------
- TEST(Verify_buf_empty_returns_1_when_passed_NULL)
- {
- CHECK( 1 == buf_empty( NULL ) );
- }
-
TEST(Verify_buf_empty_returns_1_when_buffer_is_empty)
{
buf_t buf = { NULL, 5, 1, 1 };
//-------------------------------------------------------------------------
// Test buf_full function
//-------------------------------------------------------------------------
- TEST(Verify_buf_full_returns_1_if_passed_null)
- {
- CHECK( 1 == buf_full(NULL) );
- }
-
TEST(Verify_buf_full_returns_1_if_buffer_is_full)
{
buf_t buf = { NULL, 5, 1, 6 };
//-------------------------------------------------------------------------
// Test buf_clear function
//-------------------------------------------------------------------------
- TEST(Verify_buf_clear_does_nothing_when_passed_null)
- {
- buf_clear(NULL,0);
- }
-
TEST(Verify_buf_clears_the_buffer)
{
buf_t buf = { NULL, 5, 1, 5 };
//-------------------------------------------------------------------------
// Test buf_read function
//-------------------------------------------------------------------------
- TEST(Verify_buf_read_should_return_NULL_if_passed_NULL)
- {
- CHECK( NULL == buf_read(NULL) );
- }
-
TEST(Verify_buf_read_should_return_NULL_if_buffer_is_empty)
{
buf_t* buf = buf_new(3);
//-------------------------------------------------------------------------
// Test buf_write function
//-------------------------------------------------------------------------
- TEST(Verify_buf_write_should_return_0_if_passed_NULL)
- {
- CHECK( 0 == buf_write(NULL,(void*)0x1234) );
- }
-
TEST(Verify_buf_write_should_return_0_if_buffer_is_full)
{
buf_t buf = { NULL, 3, 0, 3 };