1 #ifndef LSL_DATATYPES_H
2 #define LSL_DATATYPES_H
3 
4 //there's no good way to forward these
5 #include <string>
6 #include <map>
7 #include <vector>
8 
9 #ifdef HAVE_WX
10 class wxArrayString;
11 #endif
12 
13 namespace boost {
14 template < class T >
15 class shared_ptr;
16 }
17 
18 namespace std {
19 
20 }
21 
22 namespace LSL {
23 namespace Battle {
24 	class IBattle;
25 	class Battle;
26 	struct BattleOptions;
27 }
28 
29 template <class T, bool TDestroy>
30 class RefcountedPointer;
31 
32 template < class T > class lslColorBase;
33 typedef lslColorBase<unsigned char> lslColor;
34 
35 namespace TDF {
36     class Tokenizer;
37     class Node;
38     typedef RefcountedPointer<Node,true> PNode;
39     class DataList;
40     typedef RefcountedPointer<DataList,true> PDataList;
41     class DataLeaf;
42     typedef RefcountedPointer<DataLeaf,true> PDataLeaf;
43 }
44 
45 class CommonUser;
46 class User;
47 class Channel;
48 class Server;
49 struct UnitsyncMap;
50 struct UnitsyncMod;
51 struct UserBattleStatus;
52 struct UserPosition;
53 class OptionsWrapper;
54 struct GameOptions;
55 class Spring;
56 
57 //! @brief map used internally by the iServer class to calculate ping roundtimes.
58 typedef std::map<int, long long> PingList;
59 
60 typedef std::map< std::string, std::string> StringMap;
61 typedef std::vector< std::string > StringVector;
62 
63 typedef boost::shared_ptr< User > UserPtr;
64 typedef boost::shared_ptr< const User > ConstUserPtr;
65 
66 typedef boost::shared_ptr< Battle::IBattle > IBattlePtr;
67 typedef boost::shared_ptr< const Battle::IBattle > ConstIBattlePtr;
68 
69 typedef boost::shared_ptr< Battle::Battle > BattlePtr;
70 typedef boost::shared_ptr< const Battle::Battle > ConstBattlePtr;
71 
72 typedef boost::shared_ptr< Channel > ChannelPtr;
73 typedef boost::shared_ptr< const Channel > ConstChannelPtr;
74 
75 typedef boost::shared_ptr< Server > IServerPtr;
76 typedef boost::shared_ptr< const Server > ConstIServerPtr;
77 
78 typedef boost::shared_ptr< CommonUser > CommonUserPtr;
79 typedef boost::shared_ptr< const CommonUser > ConstCommonUserPtr;
80 
81 typedef std::vector< UserPtr > UserVector;
82 typedef std::vector< ConstUserPtr > ConstUserVector;
83 
84 typedef std::vector< CommonUserPtr > CommonUserVector;
85 typedef std::vector< ConstCommonUserPtr > ConstCommonUserVector;
86 
87 typedef boost::shared_ptr< OptionsWrapper > OptionsWrapperPtr;
88 typedef boost::shared_ptr< const OptionsWrapper > ConstOptionsWrapperPtr;
89 
90 typedef boost::shared_ptr< Spring > SpringPtr;
91 
92 struct mmOptionBool;
93 struct mmOptionFloat;
94 struct mmOptionString;
95 struct mmOptionList;
96 struct mmOptionSection;
97 
98 typedef std::map<std::string,mmOptionBool> OptionMapBool;
99 typedef std::map<std::string,mmOptionFloat> OptionMapFloat;
100 typedef std::map<std::string,mmOptionString> OptionMapString;
101 typedef std::map<std::string,mmOptionList> OptionMapList;
102 typedef std::map<std::string,mmOptionSection> OptionMapSection;
103 
104 typedef std::map<std::string,mmOptionBool>::iterator OptionMapBoolIter;
105 typedef std::map<std::string,mmOptionFloat>::iterator OptionMapFloatIter;
106 typedef std::map<std::string,mmOptionString>::iterator OptionMapStringIter;
107 typedef std::map<std::string,mmOptionList>::iterator OptionMapListIter;
108 typedef std::map<std::string,mmOptionSection>::iterator OptionMapSectionIter;
109 
110 typedef std::map<std::string,mmOptionBool>::const_iterator OptionMapBoolConstIter;
111 typedef std::map<std::string,mmOptionFloat>::const_iterator OptionMapFloatConstIter;
112 typedef std::map<std::string,mmOptionString>::const_iterator OptionMapStringConstIter;
113 typedef std::map<std::string,mmOptionList>::const_iterator OptionMapListConstIter;
114 typedef std::map<std::string,mmOptionSection>::const_iterator OptionMapSectionConstIter;
115 
116 }//namespace LSL
117 #endif //LSL_DATATYPES_H
118