include/df/system.hpp

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>  //RTTI Support enabled (improves performance of new code)
00009 
00010 #include <df/config.hpp>
00011 
00012 //Note : math.hpp is no longer included by system.hpp, you must do it
00013 // yourself. #include <math.hpp>
00014 
00015 #define _PROTECTED_ public   //too lazy to setup proper friend relationships
00016 //and they don't work thru pointers anyways
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;          //Operating System API (DF/1.0.2)
00049 class Thread;
00050 class ThreadManager;
00051 class Process;
00052 class Pipe;
00053 class SystemCode;
00054 class Heap;  //heap walking (df/1.0.1)
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;  //aka Enumerator
00066 class ArchiveFind;  //aka Enumerator
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;  //jView Window (DF/3.0.4)
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 //GUI Objects
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;  //DF/0.5.6
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 //Network sub-objects
00120 class Network;
00121 union IPAddr;
00122 union IPAddr4; //old (but still needed)
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;  //DF/4.2.0
00143 class AVI;         //DF/4.3.0
00144 class GLObject;
00145 class GLObjectGroup;
00146 class GLScene;
00147 
00148 #include <df/df.hpp>     //Misc. definitions
00149 #include <df/url.hpp>    //_DF_URL_ definition
00150 #include <df/dfver.hpp>  //_DF_VERSION_, _DF_BUILD_ defintions (DF/1.8.4)
00151 #include <df/warnings.hpp>
00152 #include <df/struct.hpp>       //all misc structs
00153 
00154 #ifdef DF_WIN
00155 #include <df/win32post.hpp>
00156 #endif
00157 
00158 #ifdef DF_LNX
00159 #include <df/linuxpost.hpp>  //req:struct.hpp
00160 #endif
00161 
00162 #include <df/syscode.hpp>      //System wide code
00163 #include <df/endian.hpp>       //Endian conversion macros
00164 #include <df/memory.hpp>       //Memory class def.  (DF/3.0)
00165 #include <df/heap.hpp>         //Heap walking
00166 #include <df/pipe.hpp>         //Pipe class def.
00167 #include <df/process.hpp>      //Process class def.
00168 #include <df/err.hpp>          //ERR_... def.
00169 #include <df/exclusive.hpp>    //ExclusiveUsage/Process class def.
00170 #include <df/string.hpp>       //String class def.
00171 #include <df/strlist.hpp>      //StringList class def.
00172 #include <df/msg.hpp>          //Message MSG_...
00173 #include <df/thread.hpp>       //Thread class def.
00174 #include <df/dll.hpp>          //DLL class def.
00175 #include <df/svc.hpp>          //ServiceControl class def.
00176 
00177 //Template classes
00178 #include <df/random.hpp>
00179 #include <df/list.hpp>      //Template Class : List
00180 #include <df/array.hpp>     //Template Class : Array (scalar) (ie: int, float, etc.)
00181 
00182 #include <df/base64.hpp>    //Base64 encoder/decoder
00183 #include <df/threadmgr.hpp> //Template Class : ThreadManager
00184 #include <df/version.hpp>   //Version class def.
00185 #include <df/enum.hpp>      //Enumerator class def.
00186 #include <df/file.hpp>      //File IO class def.
00187 #include <df/enumpid.hpp>   //ProcessEnumerator class def.
00188 #include <df/cfg.hpp>       //CFG loader (DF/1.0.7)
00189 #include <df/xml.hpp>       //XML loader (DF/1.9.0.2)
00190 #include <df/input.hpp>     //KEY_... codes
00191 #include <df/element.hpp>   //Element class def. (GUI Element)
00192 #include <df/bitmap.hpp>    //Bitmap class def.
00193 #include <df/window.hpp>    //Window class def.
00194 #include <df/jwindow.hpp>   //jWindow class def. (DF/3.0.4)
00195 #include <df/taskicon.hpp>  //TaskBarIcon class def. (v0.11)
00196 #include <df/timer.hpp>     //Time def.
00197 #include <df/gui.hpp>       //GUI class def. [Button, Label, etc.]
00198 #include <df/sound.hpp>     //Sound class def.
00199 #include <df/mouse.hpp>     //Mouse class def.
00200 #include <df/font.hpp>      //Font class def.
00201 #include <df/integer.hpp>   //Integer class def.
00202 #include <df/float.hpp>     //Float class def.
00203 #include <df/encrypto.hpp>  //Encryption class def.
00204 #include <df/dfssl.hpp>     //Open SSL stuff
00205 #include <df/network.hpp>   //Network class def.
00206 #include <df/msgsvr.hpp>    //Message Server/Client def.
00207 #include <df/db.hpp>        //ODBC class def.
00208 #include <df/g3.hpp>        //G3... class defs.
00209 #include <df/comport.hpp>   //ComPort class defs.
00210 #include <df/printer.hpp>   //Printer class defs.
00211 #include <df/crc.hpp>       //CRC class defs.
00212 #include <df/profiler.hpp>  //Profiler class defs.
00213 #include <df/eventlog.hpp>  //EventLog class def.
00214 #include <df/menu.hpp>      //Menu class def.
00215 #include <df/stdc.hpp>      //Standard-C functions (only the few)
00216 #include <df/tables.hpp>    //DF tables (DF/2.0rc3)
00217 #include <df/osapi.hpp>     //OS Interfacing API
00218 #include <df/trace.hpp>     //debug msg tracing
00219 #include <df/registry.hpp>  //Registry class def.
00220 #include <df/md4.hpp>       //MD4 checksum def.
00221 #include <df/md5.hpp>       //MD5 checksum def.
00222 #include <df/des.hpp>       //DES checksum def.
00223 #include <df/smb.hpp>       //SMB(CIFS) class def.
00224 #include <df/mp3decoder.hpp>//MP3Decoder class def.
00225 #include <df/avi.hpp>       //AVI class def.
00226 #ifdef DF_WIN
00227 #include <df/codec.hpp>     //Codec class def.
00228 #include <df/webwindow.hpp> //WebWindow class def.
00229 #endif
00230 #include <df/opengl.hpp>    //GLTexture class def.
00231 
00232 #ifdef DF_WIN
00233 #include <df/dpmi.hpp>      //DPMI (Dos Protected Mode Interface) def. (DOS32 only)
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 //#pragma pack(pop)  //restore org packing (don't bother!)
00250 
00251 #endif  //_SYSTEM_HPP_

Generated on Mon Mar 5 09:49:14 2007 for DigiForce by  doxygen 1.4.7