diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /sp/src/public/tier1/utlbufferutil.h | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/public/tier1/utlbufferutil.h')
| -rw-r--r-- | sp/src/public/tier1/utlbufferutil.h | 384 |
1 files changed, 192 insertions, 192 deletions
diff --git a/sp/src/public/tier1/utlbufferutil.h b/sp/src/public/tier1/utlbufferutil.h index a5b1c9f2..a52a528a 100644 --- a/sp/src/public/tier1/utlbufferutil.h +++ b/sp/src/public/tier1/utlbufferutil.h @@ -1,192 +1,192 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//
-// Utilities for serialization/unserialization buffer
-//=============================================================================//
-
-#ifndef UTLBUFFERUTIL_H
-#define UTLBUFFERUTIL_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "tier1/utlvector.h"
-#include "tier1/utlbuffer.h"
-
-
-//-----------------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------------
-class Vector2D;
-class Vector;
-class Vector4D;
-class QAngle;
-class Quaternion;
-class VMatrix;
-class Color;
-class CUtlBinaryBlock;
-class CUtlString;
-class CUtlCharConversion;
-
-
-//-----------------------------------------------------------------------------
-// For string serialization, set the delimiter rules
-//-----------------------------------------------------------------------------
-void SetSerializationDelimiter( CUtlCharConversion *pConv );
-void SetSerializationArrayDelimiter( const char *pDelimiter );
-
-
-//-----------------------------------------------------------------------------
-// Standard serialization methods for basic types
-//-----------------------------------------------------------------------------
-bool Serialize( CUtlBuffer &buf, const bool &src );
-bool Unserialize( CUtlBuffer &buf, bool &dest );
-
-bool Serialize( CUtlBuffer &buf, const int &src );
-bool Unserialize( CUtlBuffer &buf, int &dest );
-
-bool Serialize( CUtlBuffer &buf, const float &src );
-bool Unserialize( CUtlBuffer &buf, float &dest );
-
-bool Serialize( CUtlBuffer &buf, const Vector2D &src );
-bool Unserialize( CUtlBuffer &buf, Vector2D &dest );
-
-bool Serialize( CUtlBuffer &buf, const Vector &src );
-bool Unserialize( CUtlBuffer &buf, Vector &dest );
-
-bool Serialize( CUtlBuffer &buf, const Vector4D &src );
-bool Unserialize( CUtlBuffer &buf, Vector4D &dest );
-
-bool Serialize( CUtlBuffer &buf, const QAngle &src );
-bool Unserialize( CUtlBuffer &buf, QAngle &dest );
-
-bool Serialize( CUtlBuffer &buf, const Quaternion &src );
-bool Unserialize( CUtlBuffer &buf, Quaternion &dest );
-
-bool Serialize( CUtlBuffer &buf, const VMatrix &src );
-bool Unserialize( CUtlBuffer &buf, VMatrix &dest );
-
-bool Serialize( CUtlBuffer &buf, const Color &src );
-bool Unserialize( CUtlBuffer &buf, Color &dest );
-
-bool Serialize( CUtlBuffer &buf, const CUtlBinaryBlock &src );
-bool Unserialize( CUtlBuffer &buf, CUtlBinaryBlock &dest );
-
-bool Serialize( CUtlBuffer &buf, const CUtlString &src );
-bool Unserialize( CUtlBuffer &buf, CUtlString &dest );
-
-
-//-----------------------------------------------------------------------------
-// You can use this to check if a type serializes on multiple lines
-//-----------------------------------------------------------------------------
-template< class T >
-inline bool SerializesOnMultipleLines()
-{
- return false;
-}
-
-template< >
-inline bool SerializesOnMultipleLines<VMatrix>()
-{
- return true;
-}
-
-template< >
-inline bool SerializesOnMultipleLines<CUtlBinaryBlock>()
-{
- return true;
-}
-
-
-//-----------------------------------------------------------------------------
-// Vector serialization
-//-----------------------------------------------------------------------------
-template< class T >
-bool Serialize( CUtlBuffer &buf, const CUtlVector<T> &src )
-{
- extern const char *s_pUtlBufferUtilArrayDelim;
-
- int nCount = src.Count();
-
- if ( !buf.IsText() )
- {
- buf.PutInt( nCount );
- for ( int i = 0; i < nCount; ++i )
- {
- ::Serialize( buf, src[i] );
- }
- return buf.IsValid();
- }
-
- if ( !SerializesOnMultipleLines<T>() )
- {
- buf.PutChar('\n');
- for ( int i = 0; i < nCount; ++i )
- {
- ::Serialize( buf, src[i] );
- if ( s_pUtlBufferUtilArrayDelim && (i != nCount-1) )
- {
- buf.PutString( s_pUtlBufferUtilArrayDelim );
- }
- buf.PutChar('\n');
- }
- }
- else
- {
- for ( int i = 0; i < nCount; ++i )
- {
- ::Serialize( buf, src[i] );
- if ( s_pUtlBufferUtilArrayDelim && (i != nCount-1) )
- {
- buf.PutString( s_pUtlBufferUtilArrayDelim );
- }
- buf.PutChar(' ');
- }
- }
-
- return buf.IsValid();
-}
-
-template< class T >
-bool Unserialize( CUtlBuffer &buf, CUtlVector<T> &dest )
-{
- dest.RemoveAll();
-
- MEM_ALLOC_CREDIT_FUNCTION();
-
- if ( !buf.IsText() )
- {
- int nCount = buf.GetInt();
- if ( nCount )
- {
- dest.EnsureCapacity( nCount );
- for ( int i = 0; i < nCount; ++i )
- {
- VerifyEquals( dest.AddToTail(), i );
- if ( !::Unserialize( buf, dest[i] ) )
- return false;
- }
- }
- return buf.IsValid();
- }
-
- while ( true )
- {
- buf.EatWhiteSpace();
- if ( !buf.IsValid() )
- break;
-
- int i = dest.AddToTail( );
- if ( ! ::Unserialize( buf, dest[i] ) )
- return false;
- }
- return true;
-}
-
-
-#endif // UTLBUFFERUTIL_H
-
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +// +// Utilities for serialization/unserialization buffer +//=============================================================================// + +#ifndef UTLBUFFERUTIL_H +#define UTLBUFFERUTIL_H + +#ifdef _WIN32 +#pragma once +#endif + +#include "tier1/utlvector.h" +#include "tier1/utlbuffer.h" + + +//----------------------------------------------------------------------------- +// Forward declarations +//----------------------------------------------------------------------------- +class Vector2D; +class Vector; +class Vector4D; +class QAngle; +class Quaternion; +class VMatrix; +class Color; +class CUtlBinaryBlock; +class CUtlString; +class CUtlCharConversion; + + +//----------------------------------------------------------------------------- +// For string serialization, set the delimiter rules +//----------------------------------------------------------------------------- +void SetSerializationDelimiter( CUtlCharConversion *pConv ); +void SetSerializationArrayDelimiter( const char *pDelimiter ); + + +//----------------------------------------------------------------------------- +// Standard serialization methods for basic types +//----------------------------------------------------------------------------- +bool Serialize( CUtlBuffer &buf, const bool &src ); +bool Unserialize( CUtlBuffer &buf, bool &dest ); + +bool Serialize( CUtlBuffer &buf, const int &src ); +bool Unserialize( CUtlBuffer &buf, int &dest ); + +bool Serialize( CUtlBuffer &buf, const float &src ); +bool Unserialize( CUtlBuffer &buf, float &dest ); + +bool Serialize( CUtlBuffer &buf, const Vector2D &src ); +bool Unserialize( CUtlBuffer &buf, Vector2D &dest ); + +bool Serialize( CUtlBuffer &buf, const Vector &src ); +bool Unserialize( CUtlBuffer &buf, Vector &dest ); + +bool Serialize( CUtlBuffer &buf, const Vector4D &src ); +bool Unserialize( CUtlBuffer &buf, Vector4D &dest ); + +bool Serialize( CUtlBuffer &buf, const QAngle &src ); +bool Unserialize( CUtlBuffer &buf, QAngle &dest ); + +bool Serialize( CUtlBuffer &buf, const Quaternion &src ); +bool Unserialize( CUtlBuffer &buf, Quaternion &dest ); + +bool Serialize( CUtlBuffer &buf, const VMatrix &src ); +bool Unserialize( CUtlBuffer &buf, VMatrix &dest ); + +bool Serialize( CUtlBuffer &buf, const Color &src ); +bool Unserialize( CUtlBuffer &buf, Color &dest ); + +bool Serialize( CUtlBuffer &buf, const CUtlBinaryBlock &src ); +bool Unserialize( CUtlBuffer &buf, CUtlBinaryBlock &dest ); + +bool Serialize( CUtlBuffer &buf, const CUtlString &src ); +bool Unserialize( CUtlBuffer &buf, CUtlString &dest ); + + +//----------------------------------------------------------------------------- +// You can use this to check if a type serializes on multiple lines +//----------------------------------------------------------------------------- +template< class T > +inline bool SerializesOnMultipleLines() +{ + return false; +} + +template< > +inline bool SerializesOnMultipleLines<VMatrix>() +{ + return true; +} + +template< > +inline bool SerializesOnMultipleLines<CUtlBinaryBlock>() +{ + return true; +} + + +//----------------------------------------------------------------------------- +// Vector serialization +//----------------------------------------------------------------------------- +template< class T > +bool Serialize( CUtlBuffer &buf, const CUtlVector<T> &src ) +{ + extern const char *s_pUtlBufferUtilArrayDelim; + + int nCount = src.Count(); + + if ( !buf.IsText() ) + { + buf.PutInt( nCount ); + for ( int i = 0; i < nCount; ++i ) + { + ::Serialize( buf, src[i] ); + } + return buf.IsValid(); + } + + if ( !SerializesOnMultipleLines<T>() ) + { + buf.PutChar('\n'); + for ( int i = 0; i < nCount; ++i ) + { + ::Serialize( buf, src[i] ); + if ( s_pUtlBufferUtilArrayDelim && (i != nCount-1) ) + { + buf.PutString( s_pUtlBufferUtilArrayDelim ); + } + buf.PutChar('\n'); + } + } + else + { + for ( int i = 0; i < nCount; ++i ) + { + ::Serialize( buf, src[i] ); + if ( s_pUtlBufferUtilArrayDelim && (i != nCount-1) ) + { + buf.PutString( s_pUtlBufferUtilArrayDelim ); + } + buf.PutChar(' '); + } + } + + return buf.IsValid(); +} + +template< class T > +bool Unserialize( CUtlBuffer &buf, CUtlVector<T> &dest ) +{ + dest.RemoveAll(); + + MEM_ALLOC_CREDIT_FUNCTION(); + + if ( !buf.IsText() ) + { + int nCount = buf.GetInt(); + if ( nCount ) + { + dest.EnsureCapacity( nCount ); + for ( int i = 0; i < nCount; ++i ) + { + VerifyEquals( dest.AddToTail(), i ); + if ( !::Unserialize( buf, dest[i] ) ) + return false; + } + } + return buf.IsValid(); + } + + while ( true ) + { + buf.EatWhiteSpace(); + if ( !buf.IsValid() ) + break; + + int i = dest.AddToTail( ); + if ( ! ::Unserialize( buf, dest[i] ) ) + return false; + } + return true; +} + + +#endif // UTLBUFFERUTIL_H + |