2 #ifndef GAUDIKERNEL_STREAMBUFFER_H
3 #define GAUDIKERNEL_STREAMBUFFER_H 1
53 throw(
"Not acceptable stream mode!");
192 refpObject =
dynamic_cast<TYPE*
>(pObj);
202 refpObject =
dynamic_cast<TYPE*
>(pObj);
235 m_length = (len < 16384) ? 16384 : len;
245 if (
m_length < len ) new_len += len;
336 #ifdef USE_STREAM_ANALYSER
337 #define STREAM_ANALYSE(data, len) if ( 0 != m_analyzer ) m_analyzer(&data, len, typeid(data))
339 #define STREAM_ANALYSE(data, len)
343 #define IMPLEMENT_STREAMER(TYPE) \
345 StreamBuffer& operator<<(TYPE data) { \
346 swapToBuffer(&data, sizeof(data)); \
347 STREAM_ANALYSE(data, sizeof(data)); \
351 StreamBuffer& operator>>(TYPE & data) { \
352 swapFromBuffer(&data, sizeof(data)); \
357 #undef IMPLEMENT_STREAMER
484 for ( i = 0, data[0]=0; i < len; i++ ) {
491 const char* ptr = 0 == data ?
"" :
data;
492 int len = strlen(ptr)+1;
504 for ( i = 0, data =
""; i < len; i++ ) {
512 const char* ptr = data.c_str();
513 long len = data.length();
567 #undef STREAM_ANALYSE
575 #if defined(__alpha) && !defined(__VMS)
578 #elif defined(__sun) && defined(__SVR4) && defined(__i386)
581 #elif defined(__APPLE__)
584 #elif defined(__linux) && !defined(__powerpc)
587 #elif defined(BORLAND) || defined(_WIN32) || defined(WIN32)
599 char buff[8], *tar, *src = (
char*)source;
608 for(
int i = 0,j = siz-1;
i<siz;
i++,j--) tar[j] = src[
i];
615 memcpy(tar, src, siz);
623 char* tar = (
char*)target;
631 for(
int i = 0,j = siz-1;
i<siz;
i++,j--) tar[j] = src[
i];
637 ::memcpy(tar, src, siz);
644 template <
class T>
inline
654 template <
class T>
inline
659 for ( i = 0; i < len; i++ ) {
668 template <
class T>
inline
678 template <
class T>
inline
683 for ( i = 0; i < len; i++ ) {
690 #endif // GAUDIKERNEL_STREAMBUFFER_H