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