15 #ifndef TSA_FILE__INCLUDED 16 #define TSA_FILE__INCLUDED 25 #include "TSATypeDef.h" 26 #include "TSAVariant.h" 27 #include "TSAString.h" 50 std::vector<variant> m_tokens;
51 std::vector<size_t> m_sep_pos;
60 size_t split(
const char* string_to_split,
char separator);
63 size_t split(
const std::string& string_to_split,
char separator);
66 const variant& operator[](
size_t index)
const;
70 size_t size(
void)
const;
82 std::fstream m_stream;
83 char m_rec_buff[20000];
85 text_file_reader(
void) {};
89 text_file_reader(
char separator,
const os::path& file);
92 virtual ~text_file_reader(
void);
101 const char* line_ptr(
void)
const;
104 size_t field_count(
void)
const;
107 const variant& operator[](
size_t index)
const;
111 void print_records(std::ostream& ByteStream,
const tsa::string& sSourceFile,
char cSep);
126 class MessageStream {
128 std::ostream* m_pStream;
131 ~MessageStream(
void);
132 void operator= (std::ostream& stream);
133 void UnsetStream(
void);
134 MessageStream& operator << (
char);
135 MessageStream& operator << (
unsigned char);
136 MessageStream& operator << (
signed char);
137 MessageStream& operator << (
const char*);
138 MessageStream& operator << (
const unsigned char*);
139 MessageStream& operator << (
const signed char*);
140 MessageStream& operator << (
short _v);
141 MessageStream& operator << (
unsigned short);
142 MessageStream& operator << (
int _v);
143 MessageStream& operator << (
unsigned int);
144 MessageStream& operator << (
long _v);
145 MessageStream& operator << (
unsigned long);
146 MessageStream& operator << (
float);
147 MessageStream& operator << (
double);
148 MessageStream& operator << (
bool);
149 MessageStream& operator << (
long double);
150 MessageStream& operator << (tsa::mst);
158 class storage_stream :
virtual public object {
159 tsa_declare_testable;
161 virtual size_t tellp(
void) = 0;
162 virtual void seekp(
size_t offset) = 0;
170 class out_storage_stream :
public storage_stream {
171 tsa_declare_testable;
173 out_storage_stream() {}
174 virtual ~out_storage_stream() {}
175 out_storage_stream& operator<< (int64_t _data);
176 out_storage_stream& operator<< (
int _data);
177 out_storage_stream& operator<< (
short _data);
178 out_storage_stream& operator<< (
unsigned short _data);
179 out_storage_stream& operator<< (
unsigned _data);
180 out_storage_stream& operator<< (uint64_t _data);
181 out_storage_stream& operator<< (
float _data);
182 out_storage_stream& operator<< (
double _data);
183 out_storage_stream& operator<< (
bool _data);
184 out_storage_stream& operator<< (
const tsa::string& _sStr);
185 out_storage_stream& operator<< (
const std::string& _sStr);
186 out_storage_stream& operator<< (
const variant& _Var);
187 out_storage_stream& operator<< (
const date_time& _time);
188 virtual void write(
const char* pData,
size_t size) = 0;
196 class ostringstream_base :
public storage_stream {
197 tsa_declare_testable;
199 ostringstream_base() {}
200 virtual ~ostringstream_base() {}
202 ostringstream_base& operator<< (
int _data);
203 ostringstream_base& operator<< (
short _data);
204 ostringstream_base& operator<< (
unsigned short _data);
205 ostringstream_base& operator<< (
unsigned _data);
206 ostringstream_base& operator<< (uint64_t _data);
207 ostringstream_base& operator<< (int64_t _data);
208 ostringstream_base& operator<< (
float _data);
209 ostringstream_base& operator<< (
double _data);
210 ostringstream_base& operator<< (
bool _data);
212 ostringstream_base& operator<< (
char _data);
213 ostringstream_base& operator<< (
char* _data);
214 ostringstream_base& operator<< (
const std::string& _data);
215 virtual void write(
const char* pData,
size_t size) = 0;
224 class in_storage_stream :
public storage_stream {
225 tsa_declare_testable;
227 in_storage_stream(
void) {}
228 virtual ~in_storage_stream(
void) {}
230 in_storage_stream& operator>> (
int&);
231 in_storage_stream& operator>> (int64_t&);
232 in_storage_stream& operator>> (
short&);
233 in_storage_stream& operator>> (
unsigned short&);
234 in_storage_stream& operator>> (
unsigned&);
235 in_storage_stream& operator>> (uint64_t&);
236 in_storage_stream& operator>> (
float&);
237 in_storage_stream& operator>> (
double&);
238 in_storage_stream& operator>> (
bool&);
240 in_storage_stream& operator>> (
string&);
241 in_storage_stream& operator>> (
variant&);
242 in_storage_stream& operator>> (
date_time&);
244 virtual void read(
char* pData,
size_t size) = 0;
254 class io_file_storage_stream :
public out_storage_stream,
public in_storage_stream {
255 std::fstream m_Stream;
258 io_file_storage_stream(
const tsa::string& file_name,
bool truncate =
true);
259 io_file_storage_stream(
void) {}
260 virtual ~io_file_storage_stream(
void);
261 virtual void write(
const char* data,
size_t sz);
262 virtual void read(
char* data,
size_t sz);
265 virtual size_t tellp(
void);
266 virtual void seekp(
size_t);
278 class in_file_storage_stream :
public in_storage_stream {
279 std::fstream m_Stream;
281 in_file_storage_stream(
const tsa::string& file_name);
282 virtual ~in_file_storage_stream(
void);
284 virtual void read(
char* data,
size_t sz);
287 virtual size_t tellp(
void);
288 virtual void seekp(
size_t);
296 class mem_buff :
public object {
300 mem_buff(
size_t size = 0);
301 mem_buff(
char* data,
size_t size);
303 void reset(
char* data,
size_t size);
304 void resize(
size_t size);
305 size_t size(
void)
const;
306 operator char* (void)
const;
314 class io_mem_storage_stream :
public out_storage_stream,
public in_storage_stream {
319 size_t m_nResizeIncr;
321 io_mem_storage_stream(
size_t reserve = 10000);
323 io_mem_storage_stream(
const char* data,
size_t size);
324 virtual ~io_mem_storage_stream(
void);
325 virtual void write(
const char* data,
size_t size);
326 virtual void read(
char*,
size_t size);
327 virtual size_t tellp(
void);
328 virtual void seekp(
size_t _nPos);
329 void reserve(
size_t);
330 size_t capacity(
void)
const;
331 void resize_increment(
size_t _nIncr);
332 char* data(
void)
const;
341 class ostringstream :
public ostringstream_base {
346 size_t m_nResizeIncr;
348 ostringstream(
size_t initialSize = 10000);
349 ostringstream(
const char* data,
size_t size);
350 virtual ~ostringstream(
void);
351 virtual void write(
const char* data,
size_t size);
352 virtual size_t tellp(
void);
353 virtual void seekp(
size_t pos);
354 void reserve(
size_t);
355 size_t capacity(
void)
const;
356 void resize_increment(
size_t _nIncr);
357 char* data(
void)
const;
366 class in_mem_storage_stream :
public in_storage_stream {
368 const char* m_data_ptr;
372 in_mem_storage_stream(
const char* pData,
size_t size);
373 virtual ~in_mem_storage_stream(
void);
374 virtual void seekp(
size_t);
375 virtual void read(
char*,
size_t size);
376 virtual size_t tellp(
void);
377 size_t capacity(
void)
const;
378 const char* data(
void)
const;
386 class BLOB :
public io_mem_storage_stream {
389 BLOB(
size_t capacity) {
Utility class to manipulate file system paths. This class is intended to fulfil the requirements of t...
Definition: TSAOS.h:36
Namespace for the 'Trading System API' library.
Definition: original1.TSA3Core.cpp:20
variant objects can represent values of different types.
Definition: TSAVariant.h:140
Parent class for many library classes.
Definition: TSATypeDef.h:462
Support class for splitting 'record' strings into 'fields' using separator characters such as '...
Definition: TSAFile.h:47
Class representing a gregorian-date and time-of-day combination. The time component has microsecond r...
Definition: TSATime.h:428