include/qore/Restrictions.h File Reference

(3611)

Go to the source code of this file.

Defines

#define PO_DEFAULT   0
 no restrictions (except parse option inheritance restrictions)
#define PO_NO_GLOBAL_VARS   (1 << 0)
 cannot define new global variables
#define PO_NO_SUBROUTINE_DEFS   (1 << 1)
 cannot define new user subroutines
#define PO_NO_THREAD_CONTROL   (1 << 2)
 cannot launch new threads) use thread_exit) or access thread data
#define PO_NO_THREAD_CLASSES   (1 << 3)
 no access to thread classes
#define PO_NO_TOP_LEVEL_STATEMENTS   (1 << 4)
 cannot define new top-level statements (outside of sub or class defs)
#define PO_NO_CLASS_DEFS   (1 << 5)
 cannot define new object classes
#define PO_NO_NAMESPACE_DEFS   (1 << 6)
 cannot define new namespaces
#define PO_NO_CONSTANT_DEFS   (1 << 7)
 cannot define new constants
#define PO_NO_NEW   (1 << 8)
 cannot use the new operator
#define PO_NO_SYSTEM_CLASSES   (1 << 9)
 do not inherit system classes into this program space
#define PO_NO_USER_CLASSES   (1 << 10)
 do not inherit user classes into this program space
#define PO_NO_CHILD_PO_RESTRICTIONS   (1 << 11)
 turn off parse option inheritance restrictions
#define PO_NO_EXTERNAL_PROCESS   (1 << 12)
 do not allow backquote op, system(), exec()
#define PO_REQUIRE_OUR   (1 << 13)
 require "our" for global var declaration
#define PO_NO_PROCESS_CONTROL   (1 << 14)
 do not allow fork(), exec(), abort(), etc
#define PO_NO_NETWORK   (1 << 15)
 do not allow any network access (objs & subroutines)
#define PO_NO_FILESYSTEM   (1 << 16)
 do not allow any file access (objects & subroutines)
#define PO_LOCK_WARNINGS   (1 << 17)
 do not allow programs to change the warning mask
#define PO_NO_DATABASE   (1 << 18)
 do not allow database access
#define PO_NO_GUI   (1 << 19)
 do not allow any GUI-relevant actions to be performed
#define PO_NO_TERMINAL_IO   (1 << 20)
 do not allow any terminal I/O to be performed
#define PO_REQUIRE_TYPES   (1 << 21)
 require type information for all declarations
#define PO_NO_EXTERNAL_INFO   (1 << 22)
 do not allow any access to host, process, etc information
#define PO_NO_THREAD_INFO   (1 << 23)
 do not allow any access to thread information
#define PO_NO_LOCALE_CONTROL   (1 << 24)
 do not allow changes to program locale
#define PO_REQUIRE_PROTOTYPES   (1 << 25)
 require types in method and function declarations
#define PO_STRICT_ARGS   (1 << 26)
 do not allow access to RT_NOOP code or excess args
#define PO_NO_THREADS   (PO_NO_THREAD_CONTROL|PO_NO_THREAD_CLASSES|PO_NO_THREAD_INFO)
 cannot access any thread functionality
#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)
 prohibits any external access
#define PO_NO_IO   (PO_NO_GUI|PO_NO_TERMINAL_IO|PO_NO_FILESYSTEM)
 prohibits all terminal and file I/O and GUI operations
#define PO_LOCKDOWN   (PO_NO_EXTERNAL_ACCESS|PO_NO_THREADS|PO_NO_IO)
 most restrictive access - can just execute logic, no I/O, no threading, no external access
#define PO_POSITIVE_OPTIONS   (PO_NO_CHILD_PO_RESTRICTIONS)
 mask of all options allowing for more freedom (instead of less)
#define QDOM_DEFAULT   PO_DEFAULT
 the default domain (no domain)
#define QDOM_PROCESS   PO_NO_PROCESS_CONTROL
 provides process control functionality (can affect or stop the current process)
#define QDOM_NETWORK   PO_NO_NETWORK
 provides network functionality
#define QDOM_EXTERNAL_PROCESS   PO_NO_EXTERNAL_PROCESS
 provides external process control functionality (can affect) start) or stop external processes)
#define QDOM_FILESYSTEM   PO_NO_FILESYSTEM
 provides access to the filesystem
#define QDOM_THREAD_CLASS   PO_NO_THREAD_CLASSES
 provides thread control functionality
#define QDOM_THREAD_CONTROL   PO_NO_THREAD_CONTROL
 provides the ability to check or manipulate threads (including starting new threads)
#define QDOM_DATABASE   PO_NO_DATABASE
 provides access to databases
#define QDOM_GUI   PO_NO_GUI
 provides GUI functionality
#define QDOM_TERMINAL_IO   PO_NO_TERMINAL_IO
 provides terminal I/O functionality
#define QDOM_EXTERNAL_INFO   PO_NO_EXTERNAL_INFO
 provides access to external information (ex: hostname, pid, process uid, etc)
#define QDOM_THREAD_INFO   PO_NO_THREAD_INFO
 provides access to information regarding threading (tid, active threads, etc)
#define QDOM_LOCALE_CONTROL   PO_NO_LOCALE_CONTROL
 provices access to functionality that changes locale information

Detailed Description

defines parse restrictions and functional domains for builtin functions and qore class methods


Generated on 14 Jun 2010 for Qore Programming Language by  doxygen 1.6.1