00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _QORE_RESTRICTIONS_H
00025
00026 #define _QORE_RESTRICTIONS_H
00027
00032 #define PO_DEFAULT 0
00033 #define PO_NO_GLOBAL_VARS (1 << 0)
00034 #define PO_NO_SUBROUTINE_DEFS (1 << 1)
00035 #define PO_NO_THREAD_CONTROL (1 << 2)
00036 #define PO_NO_THREAD_CLASSES (1 << 3)
00037 #define PO_NO_TOP_LEVEL_STATEMENTS (1 << 4)
00038 #define PO_NO_CLASS_DEFS (1 << 5)
00039 #define PO_NO_NAMESPACE_DEFS (1 << 6)
00040 #define PO_NO_CONSTANT_DEFS (1 << 7)
00041 #define PO_NO_NEW (1 << 8)
00042 #define PO_NO_SYSTEM_CLASSES (1 << 9)
00043 #define PO_NO_USER_CLASSES (1 << 10)
00044 #define PO_NO_CHILD_PO_RESTRICTIONS (1 << 11)
00045 #define PO_NO_EXTERNAL_PROCESS (1 << 12)
00046 #define PO_REQUIRE_OUR (1 << 13)
00047 #define PO_NO_PROCESS_CONTROL (1 << 14)
00048 #define PO_NO_NETWORK (1 << 15)
00049 #define PO_NO_FILESYSTEM (1 << 16)
00050 #define PO_LOCK_WARNINGS (1 << 17)
00051 #define PO_NO_DATABASE (1 << 18)
00052 #define PO_NO_GUI (1 << 19)
00053 #define PO_NO_TERMINAL_IO (1 << 20)
00054 #define PO_REQUIRE_TYPES (1 << 21)
00055 #define PO_NO_EXTERNAL_INFO (1 << 22)
00056 #define PO_NO_THREAD_INFO (1 << 23)
00057 #define PO_NO_LOCALE_CONTROL (1 << 24)
00058 #define PO_REQUIRE_PROTOTYPES (1 << 25)
00059 #define PO_STRICT_ARGS (1 << 26)
00060
00061
00063 #define PO_NO_THREADS (PO_NO_THREAD_CONTROL|PO_NO_THREAD_CLASSES|PO_NO_THREAD_INFO)
00064
00066 #define PO_NO_EXTERNAL_ACCESS (PO_NO_PROCESS_CONTROL|PO_NO_NETWORK|PO_NO_FILESYSTEM|PO_NO_DATABASE|PO_NO_EXTERNAL_INFO|PO_NO_EXTERNAL_PROCESS)
00067
00069 #define PO_NO_IO (PO_NO_GUI|PO_NO_TERMINAL_IO|PO_NO_FILESYSTEM)
00070
00072 #define PO_LOCKDOWN (PO_NO_EXTERNAL_ACCESS|PO_NO_THREADS|PO_NO_IO)
00073
00075 #define PO_POSITIVE_OPTIONS (PO_NO_CHILD_PO_RESTRICTIONS)
00076
00077 #define QDOM_DEFAULT PO_DEFAULT
00078 #define QDOM_PROCESS PO_NO_PROCESS_CONTROL
00079 #define QDOM_NETWORK PO_NO_NETWORK
00080 #define QDOM_EXTERNAL_PROCESS PO_NO_EXTERNAL_PROCESS
00081 #define QDOM_FILESYSTEM PO_NO_FILESYSTEM
00082 #define QDOM_THREAD_CLASS PO_NO_THREAD_CLASSES
00083 #define QDOM_THREAD_CONTROL PO_NO_THREAD_CONTROL
00084 #define QDOM_DATABASE PO_NO_DATABASE
00085 #define QDOM_GUI PO_NO_GUI
00086 #define QDOM_TERMINAL_IO PO_NO_TERMINAL_IO
00087 #define QDOM_EXTERNAL_INFO PO_NO_EXTERNAL_INFO
00088 #define QDOM_THREAD_INFO PO_NO_THREAD_INFO
00089 #define QDOM_LOCALE_CONTROL PO_NO_LOCALE_CONTROL
00090
00091 #endif //_QORE_DOMAIN_H