Fission FSN
Loading...
Searching...
No Matches
fsCXmlFileReader.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 17/5/2012 9:18
4*
5* File: fsCXmlFileReader.h
6*
7* Author: Mick Waites
8*
9* Purpose: Provides stream like read access to a memory buffer
10* Sourced from IwGame
11*
12*********************************************************************/
13
14#ifndef fsCXmlFileReaderhdr
15#define fsCXmlFileReaderhdr
16
17#include "fsStr.h"
18
19//
20//
21// IwGame - Cross Platform Multi-purpose Game Engine using the Marmalade SDK
22//
23// Developed by Matthew Hopwood of Pocketeers Limited - www.pocketeers.co.uk
24//
25// For updates, tutorials and more details check out my blog at www.drmop.com
26//
27// This code is provided free of charge and without any warranty whatsoever. The only restriction to its usage is that this header must remain intact and visible in all IwGame engine files.
28// If you use this engine in your product, whilst it is not mandatory, a mention of the IwGame engine would be nice or a quick email to let us know where it is being used.
29//
30//
31
33{
34 // Properties
35protected:
36 char* Data; // Streams data
37 int Position; // Current position in stream
38 int Length; // Length of stream (actual allocated memory sie is aligned to 32 bytes)
39 bool EndOfFile; // true if end of stream reached
40 bool NoRelease; // If true data buffer will not be released when object deleted
41public:
42 // Properties End
43
44private:
45public:
46 fsCXmlFileReader(bool no_release) : Data(nullptr), Position(0), Length(0), EndOfFile(false), NoRelease(no_release)
47 {
48 }
49
50 fsCXmlFileReader() : Data(nullptr), Position(0), Length(0), EndOfFile(false), NoRelease(false)
51 {
52 }
53
54 virtual ~fsCXmlFileReader() { Release(); }
55
56 bool Init(fsStr& pFileStr);
57 bool Init(int nLen);
58 virtual void Release();
59
60 char* getData() { return Data; }
61
62 void setData(char* data)
63 {
64 if (Data != nullptr)
65 delete[] Data;
66 Data = data;
67 Position = 0;
68 EndOfFile = false;
69 }
70
71 void setData(char* data, int length)
72 {
73 if (Data != nullptr)
74 delete[] Data;
75 Data = data;
76 Position = 0;
77 Length = length;
78 EndOfFile = false;
79 }
80
81 int Skip(int nNumBytes);
82 int SetPos(int nPos);
83 int GetPos() const { return Position; }
84 int GetLength() const { return Length; }
85 bool IsEOF() const { return EndOfFile; }
86 int Remaining() const { return Length - Position; }
87 char GetByte();
88 float GetByteAsFloat();
89 char GetUByte();
90 int GetUByteAsInt();
91 float GetUByteAsFloat();
92 int GetBytes(char* pData, int nCount);
93 int GetBytes(short* pData, int nCount);
94 int GetBytes(int* pData, int nCount);
95 int GetBytes(float* pData, int nCount);
96 int GetUBytes(char* pData, int nCount);
97 int GetUBytes(int* pData, int nCount);
98 int GetUBytes(float* pData, int nCount);
99 int GetChars(char* pData, int nCount);
100 short GetShort();
101 short GetShortSwab();
102 float GetShortAsFloat();
103 int GetUShort();
104 float GetUShortAsFloat();
105 int GetShorts(short* pData, int nCount);
106 int GetShorts(int* pData, int nCount);
107 int GetShorts(float* pData, int nCount);
108 int GetUShorts(short* pData, int nCount);
109 int GetUShorts(int* pData, int nCount);
110 int GetUShorts(float* pData, int nCount);
111 int GetInt();
112 int GetIntSwab();
113 int GetInts(int* pData, int nCount);
114 int GetInts(float* pData, int nCount);
115 float GetFloat();
116 int GetNextString(fsStr* pString);
117 int GetNextString(char* pString, int max_len);
118 int GetNextQuotedStringAsint(int* pNum);
119 bool GetNextQuotedString(fsStr* pString);
120 bool GetNextQuotedString(char* pString, int max_len);
121 bool GetNextOccuranceOf(char find);
122 int GetNextTag(char tag_start_char, char tag_end_char, int range, int& start_pos);
123 int GetNextTagOrValue(char tag_start_char, char tag_end_char, int range, int& start_pos);
124 int FindString(const char* pString, int str_len) const;
125
128 int SkipToCharInTag(char chr);
129
130 int GetLineNumber(int pos) const;
131
132 int CalculateCheckSum();
133 int StripXMLComments();
134};
135
136
137#endif
int GetIntSwab()
Definition fsCXmlFileReader.cpp:565
int Position
Definition fsCXmlFileReader.h:37
float GetUShortAsFloat()
Definition fsCXmlFileReader.cpp:393
float GetShortAsFloat()
Definition fsCXmlFileReader.cpp:365
fsCXmlFileReader(bool no_release)
Definition fsCXmlFileReader.h:46
short GetShort()
Definition fsCXmlFileReader.cpp:333
int GetInt()
Definition fsCXmlFileReader.cpp:551
int GetNextQuotedStringAsint(int *pNum)
Definition fsCXmlFileReader.cpp:642
int SkipToCharInTag(char chr)
Definition fsCXmlFileReader.cpp:984
int GetPos() const
Definition fsCXmlFileReader.h:83
int StripXMLComments()
Definition fsCXmlFileReader.cpp:1259
int GetShorts(short *pData, int nCount)
Definition fsCXmlFileReader.cpp:407
int Remaining() const
Definition fsCXmlFileReader.h:86
bool GetNextQuotedString(fsStr *pString)
Definition fsCXmlFileReader.cpp:655
int GetNextTag(char tag_start_char, char tag_end_char, int range, int &start_pos)
Definition fsCXmlFileReader.cpp:808
int SkipToNoneWhitespaceInTag()
Definition fsCXmlFileReader.cpp:955
char * getData()
Definition fsCXmlFileReader.h:60
int SkipToWhitespaceInTag()
Definition fsCXmlFileReader.cpp:926
bool Init(fsStr &pFileStr)
Definition fsCXmlFileReader.cpp:21
int GetUShort()
Definition fsCXmlFileReader.cpp:379
int GetUBytes(char *pData, int nCount)
Definition fsCXmlFileReader.cpp:245
int Skip(int nNumBytes)
Definition fsCXmlFileReader.cpp:64
void setData(char *data)
Definition fsCXmlFileReader.h:62
int GetNextTagOrValue(char tag_start_char, char tag_end_char, int range, int &start_pos)
Definition fsCXmlFileReader.cpp:857
int CalculateCheckSum()
Definition fsCXmlFileReader.cpp:1014
int GetLineNumber(int pos) const
Definition fsCXmlFileReader.cpp:1025
void setData(char *data, int length)
Definition fsCXmlFileReader.h:71
int SetPos(int nPos)
Definition fsCXmlFileReader.cpp:76
char GetByte()
Definition fsCXmlFileReader.cpp:87
bool GetNextOccuranceOf(char find)
Definition fsCXmlFileReader.cpp:752
int Length
Definition fsCXmlFileReader.h:38
int FindString(const char *pString, int str_len) const
Definition fsCXmlFileReader.cpp:781
virtual ~fsCXmlFileReader()
Definition fsCXmlFileReader.h:54
int GetNextString(fsStr *pString)
Definition fsCXmlFileReader.cpp:710
int GetUByteAsInt()
Definition fsCXmlFileReader.cpp:129
float GetByteAsFloat()
Definition fsCXmlFileReader.cpp:101
int GetBytes(char *pData, int nCount)
Definition fsCXmlFileReader.cpp:157
virtual void Release()
Definition fsCXmlFileReader.cpp:52
char GetUByte()
Definition fsCXmlFileReader.cpp:115
float GetFloat()
Definition fsCXmlFileReader.cpp:585
int GetUShorts(short *pData, int nCount)
Definition fsCXmlFileReader.cpp:479
bool NoRelease
Definition fsCXmlFileReader.h:40
int GetLength() const
Definition fsCXmlFileReader.h:84
int GetInts(int *pData, int nCount)
Definition fsCXmlFileReader.cpp:594
bool IsEOF() const
Definition fsCXmlFileReader.h:85
char * Data
Definition fsCXmlFileReader.h:36
float GetUByteAsFloat()
Definition fsCXmlFileReader.cpp:143
short GetShortSwab()
Definition fsCXmlFileReader.cpp:347
fsCXmlFileReader()
Definition fsCXmlFileReader.h:50
int GetChars(char *pData, int nCount)
Definition fsCXmlFileReader.cpp:311
bool EndOfFile
Definition fsCXmlFileReader.h:39
Definition fsStr.h:23