Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/core/CorePrereqs.h @ 3307

Last change on this file since 3307 was 3307, checked in by landauf, 15 years ago

Completely rewrote TclThreadManager. This fixes several bugs from the initial implementation. The main features work fine now, but some tasks are still open (for example destroying a thread or implementing a queue size limit).

I hope this doesn't cause any troubles because I used the TclThreadManager-version from netp6 as a draft for the reimplementation. I've also applied the c-style-cast-fixes from core.

I tested this with boost 1.37, I hope it also works with 1.35 (I haven't seen any remarkable changes in the log). However it won't work with boost 1.34.1 and lower, but this change already happened back in netp6, so please update your dependencies if you're still using an old version (the current release is 1.39 btw).

  • Property svn:eol-style set to native
File size: 5.8 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Reto Grieder
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29/**
30  @file
31  @brief Contains all the necessary forward declarations for all classes and structs.
32*/
33
34#ifndef _CorePrereqs_H__
35#define _CorePrereqs_H__
36
37#include "OrxonoxConfig.h"
38
39//-----------------------------------------------------------------------
40// Shared library settings
41//-----------------------------------------------------------------------
42#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined( CORE_STATIC_BUILD )
43#  ifdef CORE_SHARED_BUILD
44#    define _CoreExport __declspec(dllexport)
45#  else
46#    if defined( __MINGW32__ )
47#      define _CoreExport
48#    else
49#      define _CoreExport __declspec(dllimport)
50#    endif
51#  endif
52#elif defined ( ORXONOX_GCC_VISIBILITY )
53#  define _CoreExport  __attribute__ ((visibility("default")))
54#else
55#  define _CoreExport
56#endif
57
58
59//-----------------------------------------------------------------------
60// Forward declarations
61//-----------------------------------------------------------------------
62namespace orxonox
63{
64    namespace XMLPort
65    {
66        enum Mode
67        {
68            LoadObject,
69            SaveObject,
70            ExpandObject
71        };
72    }
73
74    namespace KeybindMode
75    {
76        enum Value
77        {
78            OnPress,
79            OnHold,
80            OnRelease,
81            None
82        };
83    };
84
85    typedef std::string LanguageEntryLabel;
86
87    class ArgumentCompleter;
88    class ArgumentCompletionListElement;
89    class BaseFactory;
90    class BaseMetaObjectListElement;
91    class BaseObject;
92    template <class T>
93    class ClassFactory;
94    template <class T>
95    class ClassIdentifier;
96    class ClassTreeMask;
97    class ClassTreeMaskIterator;
98    class ClassTreeMaskNode;
99    class ClassTreeMaskObjectIterator;
100    class Clock;
101    class CommandEvaluation;
102    class CommandExecutor;
103    class CommandLine;
104    class CommandLineArgument;
105    class ConfigFile;
106    class ConfigFileEntry;
107    class ConfigFileEntryComment;
108    class ConfigFileEntryValue;
109    class ConfigFileManager;
110    class ConfigFileSection;
111    class ConfigValueContainer;
112    class ConsoleCommand;
113    class Core;
114    struct Event;
115    class EventContainer;
116    class Executor;
117    template <class T>
118    class ExecutorMember;
119    class ExecutorStatic;
120    class Factory;
121    class Functor;
122    template <class T>
123    class FunctorMember;
124    class FunctorStatic;
125    class Identifier;
126    class IRC;
127    template <class T>
128    class Iterator;
129    class IteratorBase;
130    class Language;
131    class LanguageEntry;
132    class Loader;
133    class LuaBind;
134    class MetaObjectList;
135    class MetaObjectListElement;
136    class Namespace;
137    class NamespaceNode;
138    template <class T>
139    class ObjectList;
140    class ObjectListBase;
141    class ObjectListBaseElement;
142    template <class T>
143    class ObjectListElement;
144    template <class T>
145    class ObjectListIterator;
146    class OrxonoxClass;
147    class Shell;
148    class ShellListener;
149    template <class T>
150    class SubclassIdentifier;
151    class TclBind;
152    struct TclInterpreterBundle;
153    template <class T>
154    class TclThreadList;
155    class TclThreadManager;
156    class Template;
157    class Tickable;
158    class XMLFile;
159    class XMLNameListener;
160    template <class T, class O>
161    class XMLPortClassObjectContainer;
162    template <class T>
163    class XMLPortClassParamContainer;
164    class XMLPortObjectContainer;
165    class XMLPortParamContainer;
166
167    // game states
168    class Game;
169    struct GameStateConstrParams;
170    class GameState;
171    struct GameStateTreeNode;
172
173    // input
174    class BaseCommand;
175    class BufferedParamCommand;
176    class Button;
177    class CalibratorCallback;
178    class ExtendedInputState;
179    class HalfAxis;
180    class InputBuffer;
181    class InputManager;
182    class InputState;
183    class JoyStickHandler;
184    class MouseHandler;
185    class KeyBinder;
186    class KeyDetector;
187    class KeyHandler;
188    class ParamCommand;
189    class SimpleCommand;
190    class SimpleInputState;
191
192    // multithreading
193    class Thread;
194    class ThreadPool;
195}
196
197// CppTcl
198namespace Tcl
199{
200    class interpreter;
201    class object;
202}
203
204// Boost
205namespace boost
206{
207    namespace filesystem
208    {
209        struct path_traits;
210        template <class String, class Traits> class basic_path;
211        typedef basic_path<std::string, path_traits> path;
212    }
213    class thread;
214    class mutex;
215}
216
217// TinyXML and TinyXML++
218class TiXmlString;
219class TiXmlOutStream;
220class TiXmlNode;
221class TiXmlHandle;
222class TiXmlDocument;
223class TiXmlElement;
224class TiXmlComment;
225class TiXmlUnknown;
226class TiXmlAttribute;
227class TiXmlText;
228class TiXmlDeclaration;
229class TiXmlParsingData;
230namespace ticpp
231{
232    class Document;
233    class Element;
234    class Declaration;
235    class StylesheetReference;
236    class Text;
237    class Comment;
238    class Attribute;
239}
240namespace orxonox
241{
242    using ticpp::Document;
243    using ticpp::Element;
244    using ticpp::Declaration;
245    using ticpp::StylesheetReference;
246    using ticpp::Text;
247    using ticpp::Comment;
248    using ticpp::Attribute;
249}
250
251
252#endif /* _CorePrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.