aboutsummaryrefslogtreecommitdiff
path: root/c++-libbu++/src/list.h
diff options
context:
space:
mode:
Diffstat (limited to 'c++-libbu++/src/list.h')
-rw-r--r--c++-libbu++/src/list.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/c++-libbu++/src/list.h b/c++-libbu++/src/list.h
new file mode 100644
index 0000000..5c1cd6e
--- /dev/null
+++ b/c++-libbu++/src/list.h
@@ -0,0 +1,58 @@
1#ifndef GATS_LIST_H
2#define GATS_LIST_H
3
4#include "gats/object.h"
5#include <bu/list.h>
6#include <bu/string.h>
7
8namespace Gats
9{
10 class Dictionary;
11
12 class List : public Gats::Object, public Bu::List<Gats::Object *>
13 {
14 public:
15 List();
16 virtual ~List();
17
18 virtual Object *clone() const;
19 virtual Type getType() const { return typeList; }
20
21 virtual void write( Bu::Stream &rOut ) const;
22 virtual void read( Bu::Stream &rIn, char cType );
23
24 void append( const char *s );
25 void append( const Bu::String &s );
26 void append( int32_t i );
27 void append( int64_t i );
28 void append( double d );
29 using Bu::List<Gats::Object *>::append;
30 void appendStr( const Bu::String &s );
31 void appendInt( int64_t i );
32 void appendFloat( double d );
33 void appendBool( bool b );
34 void appendList( Gats::List *pL );
35 void appendDict( Gats::Dictionary *pD );
36 Gats::List *appendList();
37 Gats::Dictionary *appendDict();
38
39 void prepend( const char *s );
40 void prepend( const Bu::String &s );
41 void prepend( int32_t i );
42 void prepend( int64_t i );
43 void prepend( double d );
44 using Bu::List<Gats::Object *>::prepend;
45 void prependStr( const Bu::String &s );
46 void prependInt( int64_t i );
47 void prependFloat( double d );
48 void prependBool( bool b );
49 void prependList( Gats::List *pL );
50 void prependDict( Gats::Dictionary *pD );
51 Gats::List *prependList();
52 Gats::Dictionary *prependDict();
53 };
54};
55
56Bu::Formatter &operator<<( Bu::Formatter &f, const Gats::List &l );
57
58#endif