00001 #ifndef _SYSTEM_HPP_
00002 #define _SYSTEM_HPP_
00003
00004 #ifndef __cplusplus
00005 #error DigiForce requires a C++ compiler
00006 #endif
00007
00008 #include <typeinfo>
00009
00010 #include <df/config.hpp>
00011
00012
00013
00014
00015 #define _PROTECTED_ public //too lazy to setup proper friend relationships
00016
00017
00018 #ifdef DF_WIN
00019 #include <df/win32.hpp>
00020 #define _DF_OK_
00021 #endif
00022
00023 #ifdef DF_LNX
00024 #ifdef _DF_OK_
00025 #error Two OS flags detected!
00026 #endif
00027 #include <df/linux.hpp>
00028 #define _DF_OK_
00029 #endif
00030
00031 #ifndef _DF_OK_
00032 #error OS not specified! Define DF_WIN or DF_LNX
00033 #endif
00034
00035 #ifdef DEBUG
00036 #define _debug_trap asm("int $3");
00037 #else
00038 #define _debug_trap ;
00039 #endif
00040
00041 #include <stdarg.h>
00042
00043 #pragma pack(push,4)
00044
00045 extern "C" char **_argv;
00046 extern "C" int _argc;
00047
00048 class OSAPI;
00049 class Thread;
00050 class ThreadManager;
00051 class Process;
00052 class Pipe;
00053 class SystemCode;
00054 class Heap;
00055 class ServiceControl;
00056 class EventLog;
00057 class MsgServer;
00058 class MsgServerSession;
00059 class MsgClient;
00060 class String;
00061 class File;
00062 class Archive;
00063 class MemFile;
00064 class Enumerator;
00065 class FileFind;
00066 class ArchiveFind;
00067 class ProcessEnumerator;
00068 class ConfigFile;
00069 class XMLFile;
00070 class Timer;
00071 class Integer;
00072 class Float;
00073 class Bitmap;
00074 class Window;
00075 class jWindow;
00076 class FindWindow;
00077 class Element;
00078 class FindElement;
00079 class MM;
00080 class Sound;
00081 class Mouse;
00082 class Font;
00083 class dB;
00084 struct Version;
00085
00086 class SubWindow;
00087 class Transparent;
00088 class Button;
00089 class Label;
00090 class TextLine;
00091 class TextBox;
00092 class TextBoxCombo;
00093 class Cursor;
00094 class Radio;
00095 class CheckBox;
00096 class ScrollArrow;
00097 class ScrollBar;
00098 class Box;
00099 class BoxFill;
00100 class HLine;
00101 class VLine;
00102 class Image;
00103 class SpreadSheet;
00104 class SpreadSheetCombo;
00105 class Explorer;
00106 class MenuItem;
00107 class Menu;
00108 class PopupMenu;
00109 class DLL;
00110 class ComPort;
00111 class MessageBase;
00112 class MessageServer;
00113 class MessageClient;
00114 class TaskBarIcon;
00115 class CRC;
00116 class OpenSSL;
00117 class OpenSSLSession;
00118 class Base64;
00119
00120 class Network;
00121 union IPAddr;
00122 union IPAddr4;
00123 class DNS;
00124 class Ping;
00125 class HTTP;
00126 class SMTP;
00127 class NetworkServer;
00128 class NetworkSession;
00129 class HTTPServer;
00130 class HTTPSession;
00131 struct HTTPSessionData;
00132 struct HTTPAlias;
00133 class FTPServer;
00134 class FTPSession;
00135 class SMTPServer;
00136 class SMTPSession;
00137 class MD4;
00138 class DES;
00139 class MD5;
00140 class SMBServer;
00141 class SMBSession;
00142 class MP3Decoder;
00143 class AVI;
00144 class GLObject;
00145 class GLObjectGroup;
00146 class GLScene;
00147
00148 #include <df/df.hpp>
00149 #include <df/url.hpp>
00150 #include <df/dfver.hpp>
00151 #include <df/warnings.hpp>
00152 #include <df/struct.hpp>
00153
00154 #ifdef DF_WIN
00155 #include <df/win32post.hpp>
00156 #endif
00157
00158 #ifdef DF_LNX
00159 #include <df/linuxpost.hpp>
00160 #endif
00161
00162 #include <df/syscode.hpp>
00163 #include <df/endian.hpp>
00164 #include <df/memory.hpp>
00165 #include <df/heap.hpp>
00166 #include <df/pipe.hpp>
00167 #include <df/process.hpp>
00168 #include <df/err.hpp>
00169 #include <df/exclusive.hpp>
00170 #include <df/string.hpp>
00171 #include <df/strlist.hpp>
00172 #include <df/msg.hpp>
00173 #include <df/thread.hpp>
00174 #include <df/dll.hpp>
00175 #include <df/svc.hpp>
00176
00177
00178 #include <df/random.hpp>
00179 #include <df/list.hpp>
00180 #include <df/array.hpp>
00181
00182 #include <df/base64.hpp>
00183 #include <df/threadmgr.hpp>
00184 #include <df/version.hpp>
00185 #include <df/enum.hpp>
00186 #include <df/file.hpp>
00187 #include <df/enumpid.hpp>
00188 #include <df/cfg.hpp>
00189 #include <df/xml.hpp>
00190 #include <df/input.hpp>
00191 #include <df/element.hpp>
00192 #include <df/bitmap.hpp>
00193 #include <df/window.hpp>
00194 #include <df/jwindow.hpp>
00195 #include <df/taskicon.hpp>
00196 #include <df/timer.hpp>
00197 #include <df/gui.hpp>
00198 #include <df/sound.hpp>
00199 #include <df/mouse.hpp>
00200 #include <df/font.hpp>
00201 #include <df/integer.hpp>
00202 #include <df/float.hpp>
00203 #include <df/encrypto.hpp>
00204 #include <df/dfssl.hpp>
00205 #include <df/network.hpp>
00206 #include <df/msgsvr.hpp>
00207 #include <df/db.hpp>
00208 #include <df/g3.hpp>
00209 #include <df/comport.hpp>
00210 #include <df/printer.hpp>
00211 #include <df/crc.hpp>
00212 #include <df/profiler.hpp>
00213 #include <df/eventlog.hpp>
00214 #include <df/menu.hpp>
00215 #include <df/stdc.hpp>
00216 #include <df/tables.hpp>
00217 #include <df/osapi.hpp>
00218 #include <df/trace.hpp>
00219 #include <df/registry.hpp>
00220 #include <df/md4.hpp>
00221 #include <df/md5.hpp>
00222 #include <df/des.hpp>
00223 #include <df/smb.hpp>
00224 #include <df/mp3decoder.hpp>
00225 #include <df/avi.hpp>
00226 #ifdef DF_WIN
00227 #include <df/codec.hpp>
00228 #include <df/webwindow.hpp>
00229 #endif
00230 #include <df/opengl.hpp>
00231
00232 #ifdef DF_WIN
00233 #include <df/dpmi.hpp>
00234 #endif
00235
00236 #define SetupThreadThis() \
00237 This = SystemCode::GetCurrentThread(); \
00238 if (!This) SystemCode::RaiseException(ERR_ASSERT);
00239
00240 #define chSTR(x) #x
00241 #define chSTR2(x) chSTR(x)
00242 #define chMSG(desc) message(__FILE__ "("\
00243 chSTR2(__LINE__) "):" #desc)
00244
00245 #define Assert(x) if (x) SystemCode::RaiseException(ERR_ASSERT);
00246
00247 extern Version DFVersion;
00248
00249
00250
00251 #endif //_SYSTEM_HPP_