source: GTP/trunk/Lib/Geom/shared/GTGeometry/include/GeoSerializer.h @ 1009

Revision 1009, 2.0 KB checked in by gumbau, 18 years ago (diff)
RevLine 
[774]1#ifndef __GEO_SERIALIZER_H__
2#define __GEO_SERIALIZER_H__
3
4#include "GeoBase.h"
5#include "GeoVector2.h"
6#include "GeoVector3.h"
7
[1009]8namespace Geometry
9{
[774]10        /// Serializer interface
11        /** Serializer is a helper class than manages file input/output.
12        */
[1009]13        class Serializer
14        {
15                public:
[774]16
[1009]17                        enum Mode
18                        {
19                                READ,
20                                WRITE,
21                                APPEND
22                        };
[774]23
[1009]24                        ///     Constructor.
25                        Serializer(String name, Mode mode);
[774]26
[1009]27                        ///     Destructor.
28                        virtual ~Serializer();
[774]29
[1009]30                        /// Copy constructor.
31                        //Serializer(const Serializer&);
[774]32
[1009]33                        /// Assignment operator.
34                        //Serializer& operator =(const Serializer&);
[774]35
[1009]36                public:
[774]37
[1009]38                        void WriteData(const void* const buf, size_t size, size_t count);
39                        void WriteArray(const float* const pfloat, size_t count);
40                        void WriteArray(const uint16* const pShort, size_t count);
41                        void WriteArray(const uint32* const pInt, size_t count);
42                        void WriteArray(const bool* const pLong, size_t count);
43                        void WriteArray(const Vector3* const pvector3, size_t count);
44                        void WriteArray(const Vector2* const pvector3, size_t count);
[774]45
[1009]46                        void            ReadData(void *buf, size_t size, size_t count);
47                        char *  ReadData(char *pDest, size_t pDestsize);
48                        void ReadArray(bool *pDest, size_t count);
49                        void ReadArray(float *pDest, size_t count);
50                        void ReadArray(uint16 *pDest, size_t count);
51                        void ReadArray(uint32 *pDest, size_t count);
52                        void ReadArray(Vector3 *pDest, size_t count);
53                        void ReadArray(Vector2 *pDest, size_t count);
[774]54
[1009]55                        void    WriteData(const String  &string);
56                        void    WriteData(const char            *string);
[774]57
[1009]58                        virtual size_t GetSize()
59                        {
60                                return mSize;
61                        }
[774]62
[1009]63                        int serializereof() {
64                                return feof(mFile);
65                        }
[774]66
[1009]67                protected:
[774]68
[1009]69                        size_t mSize;
70                        FILE   *mFile;
71                        Mode   mMode;
[774]72
[1009]73                        void FlipToLittleEndian(void *pData, size_t size, size_t count = 1);
74                        void FlipFromLittleEndian(void *pData, size_t size, size_t count = 1);
75                        void FlipEndian(void *pData, size_t size, size_t count);
76                        void FlipEndian(void *pData, size_t size);
77        };
78
[774]79}
80
81#endif
[1009]82
Note: See TracBrowser for help on using the repository browser.