AtxDataBuffer.h

00001 /*****************************************************************
00002 |
00003 |   Atomix - Data Buffers
00004 |
00005 |   (c) 2001-2006 Gilles Boccon-Gibod
00006 |   Author: Gilles Boccon-Gibod (bok@bok.net)
00007 |
00008  ****************************************************************/
00009 
00010 #ifndef _ATX_DATA_BUFFER_H_
00011 #define _ATX_DATA_BUFFER_H_
00012 
00013 /*----------------------------------------------------------------------
00014 |   includes
00015 +---------------------------------------------------------------------*/
00016 #include "AtxTypes.h"
00017 #include "AtxDefs.h"
00018 
00019 /*----------------------------------------------------------------------
00020 |   types
00021 +---------------------------------------------------------------------*/
00022 typedef struct ATX_DataBuffer ATX_DataBuffer;
00023 
00024 /*----------------------------------------------------------------------
00025 |   functions
00026 +---------------------------------------------------------------------*/
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif /* __cplusplus */
00030 
00031 ATX_Result ATX_DataBuffer_Create(ATX_Size size, ATX_DataBuffer** buffer);
00032 ATX_Result ATX_DataBuffer_Clone(const ATX_DataBuffer* self,
00033                                 ATX_DataBuffer**      clone);
00034 ATX_Result ATX_DataBuffer_Destroy(ATX_DataBuffer* self);
00035 ATX_Result ATX_DataBuffer_SetBuffer(ATX_DataBuffer* self,
00036                                     ATX_Byte*       buffer_memory, 
00037                                     ATX_Size        buffer_size);
00038 ATX_Result ATX_DataBuffer_SetBufferSize(ATX_DataBuffer* self,
00039                                         ATX_Size        buffer_size);
00040 ATX_Size   ATX_DataBuffer_GetBufferSize(const ATX_DataBuffer* self);
00041 ATX_Result ATX_DataBuffer_Reserve(ATX_DataBuffer* self,
00042                                   ATX_Size        buffer_size);
00043 const ATX_Byte*  ATX_DataBuffer_GetData(const ATX_DataBuffer* self);
00044 ATX_Byte*  ATX_DataBuffer_UseData(ATX_DataBuffer* self);
00045 ATX_Size   ATX_DataBuffer_GetDataSize(const ATX_DataBuffer* self);
00046 ATX_Result ATX_DataBuffer_SetDataSize(ATX_DataBuffer* self, ATX_Size size);
00047 ATX_Result ATX_DataBuffer_SetData(ATX_DataBuffer* self, 
00048                                   const ATX_Byte* data,
00049                                   ATX_Size        data_size);
00050 ATX_Boolean ATX_DataBuffer_Equals(const ATX_DataBuffer* self,
00051                                   const ATX_DataBuffer* other);
00052 
00053 #ifdef __cplusplus
00054 }
00055 #endif /* __cplusplus */
00056 
00057 #endif /* _ATX_DATA_BUFFER_H_ */