/home/sn3d/devel/aja-ml/aja-lib/src/OutputBuffer.h

Go to the documentation of this file.
00001 /*******************************************************/
00012 #if !defined(_AJA_OUTPUTBUFFER_H_)
00013 #define _AJA_OUTPUTBUFFER_H_
00014 
00015 #include "aja.h"
00016 
00017 #define BUFBLOCK_SIZE 512
00018 
00019 namespace aja
00020 {
00021         /********************************************************/
00030     class basicHelper
00031     {
00032         public:
00033             const void*  mPtr;
00034             unsigned int mSize;
00035     };      
00036     
00037     
00038         /********************************************************/
00046          class memHelper : public basicHelper 
00047          {
00048            public:
00049                 memHelper(const void* data, unsigned int size)
00050                 {
00051                     mPtr = data;
00052                     mSize = size;
00053                 }
00054      };     
00055 
00056 
00057         /********************************************************/
00061          class typeHelper : public basicHelper 
00062          {
00063            public:
00064                 byte_t mType;
00065                 
00066                 typeHelper(byte_t itmType, byte_t itmSubType)
00067                 {
00068                     mType = 0;            
00069                     mType = mType | ( itmType << 4);        
00070                     mType = mType | itmSubType;
00071                     mPtr  = &mType;
00072                     mSize = sizeof(byte_t);
00073                 }                
00074      };     
00075 
00076 
00077         /********************************************************/
00081          class elmIdHelper : public basicHelper 
00082          {
00083            public:
00084                 byte_t mNum[3];
00085                 
00086                 elmIdHelper(number_t id)
00087                 {
00088                     id = id & NUMBER24_MAX;
00089                     mNum[0] = (byte_t)((id >> 16)& 0x000000FF);
00090                     mNum[1] = (byte_t)((id >> 8) & 0x000000FF);
00091                     mNum[2] = (byte_t)(id & 0x000000FF);
00092                     mPtr  = &mNum;
00093                     mSize = 3 * sizeof(byte_t);
00094                 }                
00095      };     
00096 
00097     
00098     
00099         /********************************************************/
00105     class OutputBuffer
00106     {
00107         public:
00108             OutputBuffer();
00109             virtual ~OutputBuffer();
00110             
00112                 //       FUNCTIONS
00114                 public:
00115             void*        getBuffer();
00116             unsigned int getBufferSize();
00117             void         erase();
00118             bool         pushBack(const void* data, unsigned int size);            
00119                        
00120         protected:
00121             bool         resize(unsigned int new_size);
00122 
00124                 //       MEMBERS
00126                 protected:
00127             unsigned int mRealSize;  
00128             unsigned int mDataSize;  
00129             byte_t*      mBuffer;    
00130             
00132         //  OVERRIDEN OPERATORS
00134         friend OutputBuffer& operator << (OutputBuffer& o, const basicHelper& data);
00135         friend OutputBuffer& operator << (OutputBuffer& o, const byte_t data);
00136         friend OutputBuffer& operator << (OutputBuffer& o, const char* data);    
00137         friend OutputBuffer& operator << (OutputBuffer& o, const dbyte_t data);
00138         friend OutputBuffer& operator << (OutputBuffer& o, const number_t data);
00139         friend OutputBuffer& operator << (OutputBuffer& o, const std::string data);
00140         friend OutputBuffer& operator << (OutputBuffer& o, const OutputBuffer& i);                        
00141     };
00142 
00143 }
00144 
00145 #endif

Generated on Sun Mar 4 00:30:36 2007 for LIBAJA by  doxygen 1.4.6