DOORS Dynamic Object Oriented Runtime System A short description (C) moove 1994-2004 Last Update: 2/25/2004, LB DOORS is available for application server - e.g. moove online Community Server and for clients, e.g. Roomancer Browser Edition. The client version has restricted functionality for security reasons: File and registry operations are only possible in application context ("Sandbox"). Some functions are totally disabled (please see "The DOORS Editor"). DOORS organizes entities. Sources of these entities are stored in a repository (the "Akasha" storage system). Entities are compilable atomic units: 1) Functions Syntax: FUNCTION ( [ ] ) Functions can be executed synchronously or asynchronously (as threads). Examples: FUNCTION HelloWorld MessageBox("Hello World") FUNCTION Add(a, b) RETURN a + b // optional return value 2) Classes Syntax: CLASS [ BYNAME ] [ PARENT ] [ EXPORTED ] [ ] [ PROTECTED ] [ ] [ EXPORTED ] [ PROTECTED ] Classes provide a per instance scope for data and executable entities. Every instance of a class contains all of these data called MEMBER (see below). The BYNAME keyword provides instance creation by name (e.g. newest version after change of the class). The PARENT keyword provides the scope of an existing class. Example 1: CLASS SoulActor // Soul of any actor m_pActor // pointer to C++ actor EXPORTED m_nCreationTime m_nSpecificWeight PROTECTED x, y, z Example 2: CLASS SoulBeing PARENT SoulActor m_nBodyTemperature Example 3: CLASS SoulHuman PARENT SoulBeing EXPORTED m_bSex 3) Methods Syntax: ON ( [ ] ) Methods are functions in the scope of an instance, e.g. its class. Example 1: ON SoulActor Init(pActor) m_pActor := pActor Example 2: ON SoulBeing Init(pActor) m_pActor := pActor // MEMBER declared in PARENT class RETURN m_nBodyTemperature 4) Templates Syntax: TEMPLATE