codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
/* BufferRetive.h */ #ifndef BUFFERRETIVE_H #define BUFFERRETIVE_H #include<iostream> #include <sys/types.h> #include <db_cxx.h> class BufferRetive { public: inline void setValueOne(int _valueOne){ valueOne_ = _valueOne;} inline int& getValueOne(){ return (valueOne_);} void clear() { valueOne_ = 0; } BufferRetive() { clear(); } BufferRetive( void *buffer ) { char *buf = (char*)buffer; valueOne_ = *((int*)buf); bufLen_ += sizeof(int); } char *getBuffer() { memset( dataBuf_ , 0, 500); bufLen_ = 0; int dataLen = 0; dataLen = sizeof(int); memcpy( dataBuf_, &valueOne_, dataLen); bufLen_ += dataLen; return (dataBuf_); } inline size_t getBufferSize(){ return (bufLen_);} void show() { std::cout<<"Value One"<< valueOne_ <<std::endl; } private: void packString( char *buffer, std::string &theString) { size_t string_size = theString.size() + 1; memcpy(buffer+bufLen_, theString.c_str(), string_size); bufLen_ += string_size; } int valueOne_; char dataBuf_[500]; size_t bufLen_; }; #define MAXSIZE 20 typedef struct vendor { char name[MAXSIZE]; }VENDOR; // class class Db; class Dbt; int get_item_name(Db *dbp, const Dbt *pkey, const Dbt *pData, Dbt *skey ) { unsigned __int32 offset = sizeof(double)+sizeof(long); char *itemname = (char *)pData->get_data() + offset; (void)pkey; if( offset > pData->get_size() ) { dbp->errx("get item name :buffer size do not match!"); return (-1); } skey->set_data(itemname); skey->set_size(( unsigned __int32 )strlen( itemname ) +1 ); return (0); } #endif
Private
[
?
]
Run code