PIVX Core  5.6.99
P2P Digital Currency
Public Types | Public Member Functions | Protected Types | Protected Attributes | Friends | List of all members
CBaseDataStream< SerializeType > Class Template Reference

Double ended buffer combining vector and stream-like interfaces. More...

#include <streams.h>

Public Types

typedef vector_type::allocator_type allocator_type
 
typedef vector_type::size_type size_type
 
typedef vector_type::difference_type difference_type
 
typedef vector_type::reference reference
 
typedef vector_type::const_reference const_reference
 
typedef vector_type::value_type value_type
 
typedef vector_type::iterator iterator
 
typedef vector_type::const_iterator const_iterator
 
typedef vector_type::reverse_iterator reverse_iterator
 

Public Member Functions

 CBaseDataStream (int nTypeIn, int nVersionIn)
 
 CBaseDataStream (const_iterator pbegin, const_iterator pend, int nTypeIn, int nVersionIn)
 
 CBaseDataStream (const char *pbegin, const char *pend, int nTypeIn, int nVersionIn)
 
 CBaseDataStream (const vector_type &vchIn, int nTypeIn, int nVersionIn)
 
 CBaseDataStream (const std::vector< char > &vchIn, int nTypeIn, int nVersionIn)
 
 CBaseDataStream (const std::vector< unsigned char > &vchIn, int nTypeIn, int nVersionIn)
 
template<typename... Args>
 CBaseDataStream (int nTypeIn, int nVersionIn, Args &&... args)
 
void Init (int nTypeIn, int nVersionIn)
 
CBaseDataStreamoperator+= (const CBaseDataStream &b)
 
std::string str () const
 
const_iterator begin () const
 
iterator begin ()
 
const_iterator end () const
 
iterator end ()
 
size_type size () const
 
bool empty () const
 
void resize (size_type n, value_type c=0)
 
void reserve (size_type n)
 
const_reference operator[] (size_type pos) const
 
reference operator[] (size_type pos)
 
void clear ()
 
iterator insert (iterator it, const char x=char())
 
void insert (iterator it, size_type n, const char x)
 
value_typedata ()
 
const value_typedata () const
 
void insert (iterator it, std::vector< char >::const_iterator first, std::vector< char >::const_iterator last)
 
void insert (iterator it, const char *first, const char *last)
 
iterator erase (iterator it)
 
iterator erase (iterator first, iterator last)
 
void Compact ()
 
bool Rewind (size_type n)
 
bool eof () const
 
CBaseDataStreamrdbuf ()
 
int in_avail ()
 
void SetType (int n)
 
int GetType () const
 
void SetVersion (int n)
 
int GetVersion () const
 
void read (char *pch, size_t nSize)
 
CBaseDataStreammovePos (size_t nSize)
 
void ignore (int nSize)
 
void write (const char *pch, size_t nSize)
 
template<typename Stream >
void Serialize (Stream &s) const
 
template<typename T >
CBaseDataStreamoperator<< (const T &obj)
 
template<typename T >
CBaseDataStreamoperator>> (T &&obj)
 
void GetAndClear (CSerializeData &data)
 

Protected Types

typedef SerializeType vector_type
 

Protected Attributes

vector_type vch
 
unsigned int nReadPos
 
int nType
 
int nVersion
 

Friends

CBaseDataStream operator+ (const CBaseDataStream &a, const CBaseDataStream &b)
 

Detailed Description

template<typename SerializeType>
class CBaseDataStream< SerializeType >

Double ended buffer combining vector and stream-like interfaces.

and << read and write unformatted data using the above serialization templates.

Fills with data in linear time; some stringstream implementations take N^2 time.

Definition at line 75 of file streams.h.

Member Typedef Documentation

◆ allocator_type

template<typename SerializeType >
typedef vector_type::allocator_type CBaseDataStream< SerializeType >::allocator_type

Definition at line 85 of file streams.h.

◆ const_iterator

template<typename SerializeType >
typedef vector_type::const_iterator CBaseDataStream< SerializeType >::const_iterator

Definition at line 92 of file streams.h.

◆ const_reference

template<typename SerializeType >
typedef vector_type::const_reference CBaseDataStream< SerializeType >::const_reference

Definition at line 89 of file streams.h.

◆ difference_type

template<typename SerializeType >
typedef vector_type::difference_type CBaseDataStream< SerializeType >::difference_type

Definition at line 87 of file streams.h.

◆ iterator

template<typename SerializeType >
typedef vector_type::iterator CBaseDataStream< SerializeType >::iterator

Definition at line 91 of file streams.h.

◆ reference

template<typename SerializeType >
typedef vector_type::reference CBaseDataStream< SerializeType >::reference

Definition at line 88 of file streams.h.

◆ reverse_iterator

template<typename SerializeType >
typedef vector_type::reverse_iterator CBaseDataStream< SerializeType >::reverse_iterator

Definition at line 93 of file streams.h.

◆ size_type

template<typename SerializeType >
typedef vector_type::size_type CBaseDataStream< SerializeType >::size_type

Definition at line 86 of file streams.h.

◆ value_type

template<typename SerializeType >
typedef vector_type::value_type CBaseDataStream< SerializeType >::value_type

Definition at line 90 of file streams.h.

◆ vector_type

template<typename SerializeType >
typedef SerializeType CBaseDataStream< SerializeType >::vector_type
protected

Definition at line 78 of file streams.h.

Constructor & Destructor Documentation

◆ CBaseDataStream() [1/7]

template<typename SerializeType >
CBaseDataStream< SerializeType >::CBaseDataStream ( int  nTypeIn,
int  nVersionIn 
)
inlineexplicit

Definition at line 95 of file streams.h.

Here is the call graph for this function:

◆ CBaseDataStream() [2/7]

template<typename SerializeType >
CBaseDataStream< SerializeType >::CBaseDataStream ( const_iterator  pbegin,
const_iterator  pend,
int  nTypeIn,
int  nVersionIn 
)
inline

Definition at line 100 of file streams.h.

Here is the call graph for this function:

◆ CBaseDataStream() [3/7]

template<typename SerializeType >
CBaseDataStream< SerializeType >::CBaseDataStream ( const char *  pbegin,
const char *  pend,
int  nTypeIn,
int  nVersionIn 
)
inline

Definition at line 105 of file streams.h.

Here is the call graph for this function:

◆ CBaseDataStream() [4/7]

template<typename SerializeType >
CBaseDataStream< SerializeType >::CBaseDataStream ( const vector_type vchIn,
int  nTypeIn,
int  nVersionIn 
)
inline

Definition at line 110 of file streams.h.

Here is the call graph for this function:

◆ CBaseDataStream() [5/7]

template<typename SerializeType >
CBaseDataStream< SerializeType >::CBaseDataStream ( const std::vector< char > &  vchIn,
int  nTypeIn,
int  nVersionIn 
)
inline

Definition at line 115 of file streams.h.

Here is the call graph for this function:

◆ CBaseDataStream() [6/7]

template<typename SerializeType >
CBaseDataStream< SerializeType >::CBaseDataStream ( const std::vector< unsigned char > &  vchIn,
int  nTypeIn,
int  nVersionIn 
)
inline

Definition at line 120 of file streams.h.

Here is the call graph for this function:

◆ CBaseDataStream() [7/7]

template<typename SerializeType >
template<typename... Args>
CBaseDataStream< SerializeType >::CBaseDataStream ( int  nTypeIn,
int  nVersionIn,
Args &&...  args 
)
inline

Definition at line 126 of file streams.h.

Here is the call graph for this function:

Member Function Documentation

◆ begin() [1/2]

template<typename SerializeType >
iterator CBaseDataStream< SerializeType >::begin ( )
inline

Definition at line 162 of file streams.h.

◆ begin() [2/2]

template<typename SerializeType >
const_iterator CBaseDataStream< SerializeType >::begin ( ) const
inline

Definition at line 161 of file streams.h.

Here is the caller graph for this function:

◆ clear()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::clear ( )
inline

Definition at line 171 of file streams.h.

Here is the caller graph for this function:

◆ Compact()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::Compact ( )
inline

Definition at line 234 of file streams.h.

◆ data() [1/2]

template<typename SerializeType >
value_type* CBaseDataStream< SerializeType >::data ( )
inline

Definition at line 178 of file streams.h.

Here is the caller graph for this function:

◆ data() [2/2]

template<typename SerializeType >
const value_type* CBaseDataStream< SerializeType >::data ( ) const
inline

Definition at line 179 of file streams.h.

◆ empty()

template<typename SerializeType >
bool CBaseDataStream< SerializeType >::empty ( ) const
inline

Definition at line 166 of file streams.h.

Here is the caller graph for this function:

◆ end() [1/2]

template<typename SerializeType >
iterator CBaseDataStream< SerializeType >::end ( )
inline

Definition at line 164 of file streams.h.

◆ end() [2/2]

template<typename SerializeType >
const_iterator CBaseDataStream< SerializeType >::end ( ) const
inline

Definition at line 163 of file streams.h.

Here is the caller graph for this function:

◆ eof()

template<typename SerializeType >
bool CBaseDataStream< SerializeType >::eof ( ) const
inline

Definition at line 253 of file streams.h.

Here is the call graph for this function:

◆ erase() [1/2]

template<typename SerializeType >
iterator CBaseDataStream< SerializeType >::erase ( iterator  first,
iterator  last 
)
inline

Definition at line 219 of file streams.h.

◆ erase() [2/2]

template<typename SerializeType >
iterator CBaseDataStream< SerializeType >::erase ( iterator  it)
inline

Definition at line 205 of file streams.h.

Here is the caller graph for this function:

◆ GetAndClear()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::GetAndClear ( CSerializeData data)
inline

Definition at line 332 of file streams.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetType()

template<typename SerializeType >
int CBaseDataStream< SerializeType >::GetType ( ) const
inline

Definition at line 258 of file streams.h.

Here is the caller graph for this function:

◆ GetVersion()

template<typename SerializeType >
int CBaseDataStream< SerializeType >::GetVersion ( ) const
inline

Definition at line 260 of file streams.h.

Here is the caller graph for this function:

◆ ignore()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::ignore ( int  nSize)
inline

Definition at line 285 of file streams.h.

◆ in_avail()

template<typename SerializeType >
int CBaseDataStream< SerializeType >::in_avail ( )
inline

Definition at line 255 of file streams.h.

Here is the call graph for this function:

◆ Init()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::Init ( int  nTypeIn,
int  nVersionIn 
)
inline

Definition at line 132 of file streams.h.

Here is the caller graph for this function:

◆ insert() [1/4]

template<typename SerializeType >
void CBaseDataStream< SerializeType >::insert ( iterator  it,
const char *  first,
const char *  last 
)
inline

Definition at line 193 of file streams.h.

Here is the call graph for this function:

◆ insert() [2/4]

template<typename SerializeType >
iterator CBaseDataStream< SerializeType >::insert ( iterator  it,
const char  x = char() 
)
inline

Definition at line 176 of file streams.h.

Here is the caller graph for this function:

◆ insert() [3/4]

template<typename SerializeType >
void CBaseDataStream< SerializeType >::insert ( iterator  it,
size_type  n,
const char  x 
)
inline

Definition at line 177 of file streams.h.

◆ insert() [4/4]

template<typename SerializeType >
void CBaseDataStream< SerializeType >::insert ( iterator  it,
std::vector< char >::const_iterator  first,
std::vector< char >::const_iterator  last 
)
inline

Definition at line 181 of file streams.h.

Here is the call graph for this function:

◆ movePos()

template<typename SerializeType >
CBaseDataStream& CBaseDataStream< SerializeType >::movePos ( size_t  nSize)
inline

Definition at line 280 of file streams.h.

Here is the caller graph for this function:

◆ operator+=()

template<typename SerializeType >
CBaseDataStream& CBaseDataStream< SerializeType >::operator+= ( const CBaseDataStream< SerializeType > &  b)
inline

Definition at line 139 of file streams.h.

Here is the call graph for this function:

◆ operator<<()

template<typename SerializeType >
template<typename T >
CBaseDataStream& CBaseDataStream< SerializeType >::operator<< ( const T obj)
inline

Definition at line 317 of file streams.h.

Here is the call graph for this function:

◆ operator>>()

template<typename SerializeType >
template<typename T >
CBaseDataStream& CBaseDataStream< SerializeType >::operator>> ( T &&  obj)
inline

Definition at line 325 of file streams.h.

Here is the call graph for this function:

◆ operator[]() [1/2]

template<typename SerializeType >
reference CBaseDataStream< SerializeType >::operator[] ( size_type  pos)
inline

Definition at line 170 of file streams.h.

◆ operator[]() [2/2]

template<typename SerializeType >
const_reference CBaseDataStream< SerializeType >::operator[] ( size_type  pos) const
inline

Definition at line 169 of file streams.h.

◆ rdbuf()

template<typename SerializeType >
CBaseDataStream* CBaseDataStream< SerializeType >::rdbuf ( )
inline

Definition at line 254 of file streams.h.

◆ read()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::read ( char *  pch,
size_t  nSize 
)
inline

Definition at line 262 of file streams.h.

Here is the call graph for this function:

◆ reserve()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::reserve ( size_type  n)
inline

Definition at line 168 of file streams.h.

Here is the caller graph for this function:

◆ resize()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::resize ( size_type  n,
value_type  c = 0 
)
inline

Definition at line 167 of file streams.h.

Here is the caller graph for this function:

◆ Rewind()

template<typename SerializeType >
bool CBaseDataStream< SerializeType >::Rewind ( size_type  n)
inline

Definition at line 240 of file streams.h.

◆ Serialize()

template<typename SerializeType >
template<typename Stream >
void CBaseDataStream< SerializeType >::Serialize ( Stream &  s) const
inline

Definition at line 309 of file streams.h.

Here is the caller graph for this function:

◆ SetType()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::SetType ( int  n)
inline

Definition at line 257 of file streams.h.

Here is the caller graph for this function:

◆ SetVersion()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::SetVersion ( int  n)
inline

Definition at line 259 of file streams.h.

Here is the caller graph for this function:

◆ size()

template<typename SerializeType >
size_type CBaseDataStream< SerializeType >::size ( ) const
inline

Definition at line 165 of file streams.h.

Here is the caller graph for this function:

◆ str()

template<typename SerializeType >
std::string CBaseDataStream< SerializeType >::str ( ) const
inline

Definition at line 152 of file streams.h.

Here is the call graph for this function:

◆ write()

template<typename SerializeType >
void CBaseDataStream< SerializeType >::write ( const char *  pch,
size_t  nSize 
)
inline

Definition at line 302 of file streams.h.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator+

template<typename SerializeType >
CBaseDataStream operator+ ( const CBaseDataStream< SerializeType > &  a,
const CBaseDataStream< SerializeType > &  b 
)
friend

Definition at line 145 of file streams.h.

Member Data Documentation

◆ nReadPos

template<typename SerializeType >
unsigned int CBaseDataStream< SerializeType >::nReadPos
protected

Definition at line 80 of file streams.h.

◆ nType

template<typename SerializeType >
int CBaseDataStream< SerializeType >::nType
protected

Definition at line 81 of file streams.h.

◆ nVersion

template<typename SerializeType >
int CBaseDataStream< SerializeType >::nVersion
protected

Definition at line 82 of file streams.h.

◆ vch

template<typename SerializeType >
vector_type CBaseDataStream< SerializeType >::vch
protected

Definition at line 79 of file streams.h.


The documentation for this class was generated from the following file: