3 #include "g_cont_ref.h"
4 #include "g_cont_gstr.h"
20 virtual void write (
const void* ,
size_t ) = 0;
22 virtual const void*
read (
void* ,
size_t ) = 0;
32 template <
class T > QueueDataBufferAbstract& operator << (QueueDataBufferAbstract &out,
const T& aT )
34 out.write ( &aT ,
sizeof(T) );
39 template <
class T > QueueDataBufferAbstract& operator << (QueueDataBufferAbstract &out, T* aT )
41 out.write ( aT ,
sizeof(T) );
46 inline QueueDataBufferAbstract& operator << (QueueDataBufferAbstract &out,
void* aT )
48 out.write ( aT ,
sizeof(
int*) );
53 inline QueueDataBufferAbstract& operator << (QueueDataBufferAbstract &out,
const char* aStr )
60 inline QueueDataBufferAbstract& operator << (QueueDataBufferAbstract &out,
const wchar_t* aStr )
67 template <
class T> QueueDataBufferAbstract& operator << (QueueDataBufferAbstract &out, const g::cont::gstr<T>& aStr )
69 out.write ( aStr , (aStr.getLength()+1) *
sizeof(T));
74 template <
class T> QueueDataBufferAbstract& operator << (QueueDataBufferAbstract &out, const std::basic_string<T>& aStr )
76 out.write ( aStr , (aStr.size()+1) *
sizeof(T));
81 template <
class T > QueueDataBufferAbstract& operator >> (QueueDataBufferAbstract &out, T& aT )
83 out.read ( &aT ,
sizeof(T) );
88 template <
class T > QueueDataBufferAbstract& operator >> (QueueDataBufferAbstract &out, T* aT )
90 out.read ( &aT ,
sizeof(T) );
95 inline QueueDataBufferAbstract& operator >> (QueueDataBufferAbstract &out,
void* aT )
97 out.read ( &aT ,
sizeof(
int*) );
102 inline QueueDataBufferAbstract& operator >> (QueueDataBufferAbstract &out,
char* aStr )
104 str::str_copy<char>( aStr , (
const char*)out.read ( NULL , 0 ) );
109 inline QueueDataBufferAbstract& operator >> (QueueDataBufferAbstract &out,
wchar_t* aStr )
111 str::str_copy<wchar_t>( aStr , (
const wchar_t*)out.read ( NULL , 0 ) );
116 template <
class T> QueueDataBufferAbstract& operator >> (QueueDataBufferAbstract &out,
g::cont::gstr<T>& aStr )
118 const T* str_p =
reinterpret_cast<const T*
>(out.getCurrentPtr ());
122 out.read(NULL,(aStr.getLength()+1)*
sizeof(T));
127 template <
class T> QueueDataBufferAbstract& operator >> (QueueDataBufferAbstract &out, std::basic_string<T>& aStr )
129 const T* str_p =
reinterpret_cast<const T*
>(out.getCurrentPtr ());
133 out.read(NULL,(aStr.size()+1)*
sizeof(T));
Subclass for defining arbitrary data packet.
Definition: g_signal_queueDataBuffer.h:12
virtual const void * getCurrentPtr()=0
Gets current offsetted pointer.
size_t get_len(const T *aString)
Returns the string length.
Definition: g_str_lib.h:41
Definition: g.mthread.ThreadSimpleEvent.h:5
Definition: g_cont_alg.h:11
virtual void write(const void *, size_t)=0
Copies size_t buffer bytes to THIS buffer from data parameter.
Definition: g_cont_it_ref.h:10
void reset()
Reset the offset.
Definition: g_signal_queueDataBuffer.h:26
virtual const void * read(void *, size_t)=0
Copies buffer bytes to destination buffer if it is != NULL otherwise just move the offset...