00001
00006 #ifndef __BGDNetBuffer_h__
00007 #define __BGDNetBuffer_h__
00008
00009 #include "BGDNetConfig.h"
00010
00011 #include <nwdsbuft.h>
00012 #include "BGDNetException.h"
00013 #include "BGDNetString.h"
00014 #include "BGDNetCollection.h"
00015
00016 namespace BGDNet
00017 {
00018
00019 class Context;
00020
00031 class BGDNET_API Buffer
00032 {
00033 public:
00034
00035 explicit Buffer( const Context& ctx, size_t sz = DEFAULT_MESSAGE_LEN )
00036 throw(Exception);
00046 ~Buffer( void );
00052 const Context& ctx( void ) const;
00058 Buf_T* buf( void );
00064 const Buf_T* buf( void ) const;
00070 private:
00071
00072 Buf_T* m_pBuf;
00077 const Context& m_ctx;
00081 };
00082
00083
00084
00085
00092 class BGDNET_API InputBuffer : public Buffer
00093 {
00094 public:
00095
00096 InputBuffer( const Context& ctx, nuint32 op, size_t sz = DEFAULT_MESSAGE_LEN )
00097 throw(Exception);
00105 void putAttrName( const char* name );
00110 };
00111
00112
00113
00114
00115 #ifdef _MSC_VER
00116 # pragma warning(disable:4231)
00117 #endif
00118
00119 BGDNET_TEMPLATE(Collection<char>);
00120 BGDNET_TEMPLATE(Collection<Collection<char> >);
00121
00122 #ifdef _MSC_VER
00123 # pragma warning(default:4231)
00124 #endif
00125
00126 typedef Collection<char> NDSAttrVal;
00127 typedef Collection<Collection<char> > NDSAttrValues;
00128
00129
00130
00131
00139 class BGDNET_API OutputBuffer : public Buffer
00140 {
00141 public:
00142
00143 explicit OutputBuffer( const Context& ctx, size_t sz = DEFAULT_MESSAGE_LEN )
00144 throw(Exception);
00151 int objCount( void )
00152 throw(Exception);
00158 String objName( String* pBaseClass = 0 )
00159 throw(Exception);
00167 String objNameAndDSIInfo( char** ppInfo )
00168 throw(Exception);
00176 int attrCount( void )
00177 throw(Exception);
00183 String getAttr( NDSAttrValues* pValues );
00190 };
00191
00192 }
00193
00194 #endif //__BGDNetBuffer_h__