Files
geant4/source/geometry/solids/STEP/include/sdai.h
T
2016-06-08 15:42:07 +02:00

429 lines
14 KiB
C++

#ifndef P23SDAI_H
#define P23SDAI_H
/*
* NIST STEP Core Class Library
* clstepcore/sdai.h
* April 1997
* David Sauder
* KC Morris
* Development of this software was funded by the United States Government,
* and is not subject to copyright.
* This file is included to support the proposed SDAI/C++ Language Binding
* specified in Annex D of STEP Part 22.
* This file specifies the appropriate naming conventions and NULL
* values for the EXPRESS base types.
*/
/* $Id: sdai.h,v 1.4 2000/02/14 13:44:03 gcosmo Exp $ */
extern const char *SCLversion;
#include <ctype.h>
//#include <stdio.h>
//#include <strstream.h>
//#include <values.h>
#include <string.h>
#ifdef PART26
// Change the name of the include file defining the defs for Bool and Logical
// inside the file corbaIncludes.h
#include <corbaIncludes.h>
#endif
#ifdef __OSTORE__
#include <ostore/ostore.hh> // Required to access ObjectStore Class Library
#include <ostore/coll.hh>
void Application_instance_access_hook_in(void *object,
enum os_access_reason reason, void *user_data,
void *start_range, void *end_range);
#endif
#include <sclprefixes.h>
#include <dictdefs.h>
#include <baseType.h>
#include <Str.h>
#include <scl_string.h>
#include <errordesc.h>
typedef String_var Express_id;
#ifdef __O3DB__
/* OpenOODB.h must be the first include file. */
#include <OpenOODB.h>
#endif
//#include <read_func.h>
class TypeDescriptor;
class EntityDescriptor;
class SelectTypeDescriptor;
class InstMgr;
#include <STEPattributeList.h>
class STEPattributeList;
class STEPattribute;
#ifndef BINARY_DELIM
#define BINARY_DELIM '\"'
#endif
#ifndef STRING_DELIM
#define STRING_DELIM '\''
#endif
// STRING
#define S_STRING_NULL ""
#ifndef CC_NO_NESTED_CLASSES
#ifndef PART26
struct P23_NAMESPACE {
#endif // PART26
#endif // CC_NO_NESTED_CLASSES
// INTEGER
//typedef long Integer;
//typedef short Short;
//typedef unsigned short UShort;
//typedef unsigned long ULong;
typedef long SCLP23_NAME(Integer);
typedef short SCLP23_NAME(Short);
typedef unsigned short SCLP23_NAME(UShort);
typedef unsigned long SCLP23_NAME(ULong);
typedef double SCLP23_NAME(Real);
// C++ from values.h DAS PORT
#ifdef CC_NO_NESTED_CLASSES
extern const SCLP23_NAME(Integer) SCLP23_NAME(INT_NULL);
extern const SCLP23_NAME(Real) SCLP23_NAME(REAL_NULL);
// arbitrary choice by me for number DAS
extern const SCLP23_NAME(Real) SCLP23_NAME(NUMBER_NULL);
#else
#ifdef PART26
extern const SCLP23_NAME(Integer) SCLP23_NAME(INT_NULL);
extern const SCLP23_NAME(Real) SCLP23_NAME(REAL_NULL);
// arbitrary choice by me for number DAS
extern const SCLP23_NAME(Real) SCLP23_NAME(NUMBER_NULL);
#else
static const SCLP23_NAME(Integer) SCLP23_NAME(INT_NULL);
static const SCLP23_NAME(Real) SCLP23_NAME(REAL_NULL);
// arbitrary choice by me for number DAS
static const SCLP23_NAME(Real) SCLP23_NAME(NUMBER_NULL);
#endif
#endif
/*
// C++ from values.h DAS PORT
//static const Integer INT_NULL = MAXLONG;
static const Integer INT_NULL;
// REAL
typedef double Real;
// C++ from values.h DAS PORT
//static const Real REAL_NULL = MINFLOAT;
static const Real REAL_NULL;
// NUMBER
// arbitrary choice by me for number DAS
// C++ from values.h DAS PORT
//static const Real NUMBER_NULL = MINFLOAT;
static const Real NUMBER_NULL;
*/
enum SCLP23_NAME(Access_type) {
SCLP23_NAME(sdaiRO),
SCLP23_NAME(sdaiRW),
SCLP23_NAME(Access_type_unset)
};
enum SCLP23_NAME(Commit_mode) {
SCLP23_NAME(sdaiCOMMIT),
SCLP23_NAME(sdaiABORT)
} ;
enum SCLP23_NAME(AttrFlag) {
SCLP23_NAME(sdaiSET),
SCLP23_NAME(sdaiUNSET)
} ;
enum SCLP23_NAME(ImplementationClass) {
SCLP23_NAME(sdaiCLASS1),
SCLP23_NAME(sdaiCLASS2),
SCLP23_NAME(sdaiCLASS3),
SCLP23_NAME(sdaiCLASS4),
SCLP23_NAME(sdaiCLASS5)
}; // conflict with part 22 EXPRESS:
enum SCLP23_NAME(Error_id) {
//
// error codes taken from 10303-23, Jan 28, 1997.
// ISO TC184/SC4/WG11 N 004
//
SCLP23_NAME(sdaiNO_ERR) = 0, // No error
SCLP23_NAME(sdaiSS_OPN) = 10, // Session open
SCLP23_NAME(sdaiSS_NAVL) = 20, // Session not available
SCLP23_NAME(sdaiSS_NOPN) = 30, // Session is not open
SCLP23_NAME(sdaiRP_NEXS) = 40, // Repository does not exist
SCLP23_NAME(sdaiRP_NAVL) = 50, // Repository not available
SCLP23_NAME(sdaiRP_OPN) = 60, // Repository already opened
SCLP23_NAME(sdaiRP_NOPN) = 70, // Repository is not open
SCLP23_NAME(sdaiTR_EAB) = 80, // Transaction ended abnormally so it no longer exists
SCLP23_NAME(sdaiTR_EXS) = 90, // Transaction exists
SCLP23_NAME(sdaiTR_NAVL) = 100, // Transaction not available
SCLP23_NAME(sdaiTR_RW) = 110, // Transaction read-write
SCLP23_NAME(sdaiTR_NRW) = 120, // Transaction not read-write
SCLP23_NAME(sdaiTR_NEXS) = 130, // Transaction does not exist
SCLP23_NAME(sdaiMO_NDEQ) = 140, // SDAI-model not domain-equivalent
SCLP23_NAME(sdaiMO_NEXS) = 150, // SDAI-model does not exist
SCLP23_NAME(sdaiMO_NVLD) = 160, // SDAI-model invalid
SCLP23_NAME(sdaiMO_DUP) = 170, // SDAI-model duplicate
SCLP23_NAME(sdaiMX_NRW) = 180, // SDAI-model access not read-write
SCLP23_NAME(sdaiMX_NDEF) = 190, // SDAI-model access is not defined
SCLP23_NAME(sdaiMX_RW) = 200, // SDAI-model access read-write
SCLP23_NAME(sdaiMX_RO) = 210, // SDAI-model access read-only
SCLP23_NAME(sdaiSD_NDEF) = 220, // Schema definition is not defined
SCLP23_NAME(sdaiED_NDEF) = 230, // Entity definition not defined
SCLP23_NAME(sdaiED_NDEQ) = 240, // Entity definition not domain equivalent
SCLP23_NAME(sdaiED_NVLD) = 250, // Entity definition invalid
// SCLP23_NAME(sdaiED_NAVL) = 250, // Entity definition not available
SCLP23_NAME(sdaiRU_NDEF) = 260, // Rule not defined
SCLP23_NAME(sdaiEX_NSUP) = 270, // Expression evaluation not supported
SCLP23_NAME(sdaiAT_NVLD) = 280, // Attribute invalid
SCLP23_NAME(sdaiAT_NDEF) = 290, // Attribute not defined
SCLP23_NAME(sdaiSI_DUP) = 300, // Schema instance duplicate
SCLP23_NAME(sdaiSI_NEXS) = 310, // Schema instance does not exist
SCLP23_NAME(sdaiEI_NEXS) = 320, // Entity instance does not exist
SCLP23_NAME(sdaiEI_NAVL) = 330, // Entity instance not available
SCLP23_NAME(sdaiEI_NVLD) = 340, // Entity instance invalid
SCLP23_NAME(sdaiEI_NEXP) = 350, // Entity instance not exported
SCLP23_NAME(sdaiSC_NEXS) = 360, // Scope does not exist
SCLP23_NAME(sdaiSC_EXS) = 370, // Scope exists
SCLP23_NAME(sdaiAI_NEXS) = 380, // Aggregate instance does not exist
SCLP23_NAME(sdaiAI_NVLD) = 390, // Aggregate instance invalid
SCLP23_NAME(sdaiAI_NSET) = 400, // Aggregate instance is empty
SCLP23_NAME(sdaiVA_NVLD) = 410, // Value invalid
SCLP23_NAME(sdaiVA_NEXS) = 420, // Value does not exist
SCLP23_NAME(sdaiVA_NSET) = 430, // Value not set
SCLP23_NAME(sdaiVT_NVLD) = 440, // Value type invalid
SCLP23_NAME(sdaiIR_NEXS) = 450, // Iterator does not exist
SCLP23_NAME(sdaiIR_NSET) = 460, // Current member is not defined
SCLP23_NAME(sdaiIX_NVLD) = 470, // Index invalid
SCLP23_NAME(sdaiER_NSET) = 480, // Event recording not set
SCLP23_NAME(sdaiOP_NVLD) = 490, // Operator invalid
SCLP23_NAME(sdaiFN_NAVL) = 500, // Function not available
SCLP23_NAME(sdaiSY_ERR) = 1000 // Underlying system error
};
typedef char * SCLP23_NAME(Time_stamp);
typedef char * SCLP23_NAME(Entity_name);
typedef char * SCLP23_NAME(Schema_name);
/*
enum Access_type {sdaiRO, sdaiRW};
enum Commit_mode {sdaiCOMMIT, sdaiABORT} ;
enum AttrFlag { sdaiSET, sdaiUNSET } ;
enum ImplementationClass { sdaiCLASS1, sdaiCLASS2, sdaiCLASS3, sdaiCLASS4, sdaiCLASS5 }; // conflict with part 22 EXPRESS:
enum Error_id {
sdaiNO_ERR = 0 , // No error
sdaiSS_OPN = 10, // Session open
sdaiSS_NAVL = 20, // Session not available
sdaiSS_NOPN = 30, // Session is not open
sdaiRP_NEXS = 40, // Repository does not exist
sdaiRP_NAVL = 50, // Repository not available
sdaiRP_OPN = 60, // Repository already opened
sdaiRP_NOPN = 70, // Repository not open
sdaiTR_EXS = 80, // Transaction exists
sdaiTR_NRO = 90, // Transaction not read-only
sdaiTR_NRW = 100, // Transaction not read-write
sdaiTR_NEXS = 110, // Transaction does not exist
sdaiSD_NDEF = 120, // Schema definition is not defined
sdaiMO_NEXS = 130, // SDAI-model does not exist
sdaiMO_NAVL = 140, // SDAI-model is not active
sdaiMX_NVLD = 150, // SDAI-model access invalid
sdaiMX_NRO = 160, // SDAI-model not read-only
sdaiMX_NRW = 170, // SDAI-model not read-write
sdaiMX_NDEF = 180, // SDAI-model access is not defined
sdaiMO_NVLD = 190, // SDAI-model invalid
sdaiMO_DUP = 200, // SDAI-model duplicate
sdaiED_NDEF = 210, // Entity definition not defined
sdaiTY_NDEF = 220, // Type not defined
sdaiTY_NVLD = 230, // Type invalid
sdaiRU_NEXS = 240, // Rule does not exist
sdaiFN_NAVL = 250, // Function not available
sdaiEI_NEXS = 260, // Entity instance does not exist
sdaiAT_NDEF = 270, // Attribute not defined
sdaiSI_DUP = 280, // Schema instance duplicate
sdaiVT_NVLD = 290, // Value type invalid
sdaiAG_NEXS = 300, // Aggregate does not exist
sdaiIR_NEXS = 310, // Iterator does not exist
sdaiAG_NSET = 320, // Aggregate is empty
sdaiIR_NSET = 330, // Current member is not defined
sdaiAD_NVLD = 340, // Aggregate definition invalid
sdaiVA_NSET = 350, // Value not set
sdaiIX_NVLD = 360, // Index invalid
sdaiED_NAVL = 370, // Entity definition is not available
sdaiSI_NEXS = 380, // Schema instance does not exist
sdaiEI_NAVL = 390, // Entity instance not available
sdaiSC_DUP = 400, // Scope duplicate
sdaiEI_NEXP = 410, // Entity instance not exported
sdaiMO_NINT = 420, // SDAI-model not interoperable
sdaiSY_ERR = 1000 // Underlying system error
};
*/
#include <sdaiString.h>
#include <sdaiBinary.h>
// define Object which I am calling sdaiObject for now - DAS
#include <sdaiObject.h>
/******************************************************************************
ENUMERATION
These types do not use the interface specified.
The interface used is to enumerated values. The enumerations are
mapped in the following way:
* enumeration-item-from-schema ==> enumeration item in c++ enum clause
* all enumeration items in c++ enum are in upper case
* the value ENUM_NULL is used to represent NULL for all enumerated types
*****************************************************************************/
#include <sdaiEnum.h>
/******************************************************************************
BOOLEAN and LOGICAL
Logical are implemented as an enumeration in sdaiEnum.h:
Boolean are implemented as an enumeration in sdaiEnum.h:
******************************************************************************/
// ***note*** this file needs classes from sdaiEnum.h
// define DAObjectID and classes PID, PID_DA, PID_SDAI, DAObject, DAObject_SDAI
#include <sdaiDaObject.h>
#include <sdaiApplication_instance.h>
#include <sdaiApplication_instance_set.h>
/******************************************************************************
SELECT
Selects are represented as subclasses of the SCLP23(Select) class in
sdaiSelect.h
******************************************************************************/
#include <sdaiSelect.h>
//typedef char * SCLP23_NAME(Entity_name);
class SCLP23_NAME(Model_contents);
typedef SCLP23_NAME(Model_contents) * SCLP23_NAME(Model_contents_ptr);
typedef SCLP23_NAME(Model_contents_ptr) SCLP23_NAME(Model_contents_var);
#include <sdaiModel_contents_list.h>
#include <sdaiSession_instance.h>
#include <sdaiEntity_extent.h>
#include <sdaiEntity_extent_set.h>
#include <sdaiModel_contents.h>
#ifndef CC_NO_NESTED_CLASSES
#ifndef PART26
}; // end struct P23_NAMESPACE
#endif // PART26
#endif // CC_NO_NESTED_CLASSES
#ifdef PART26
//#define SDAI_DEF_TIE_P26_Application_instance(x) DEF_TIE_P26_Application_instance(x)
#define Application_instance_i SCLP23(Application_instance)
DEF_TIE_IDL_Application_instance(Application_instance_i)
//DEF_TIE_P26_Application_instance(Application_instance_i)
//DEF_TIE_IDL_Application_instance(SCLP23(Application_instance))
#endif
// ENTITY
extern SCLP23(Application_instance) NilSTEPentity;
#define ENTITY_NULL &NilSTEPentity
#define NULL_ENTITY &NilSTEPentity
#define S_ENTITY_NULL &NilSTEPentity
//#define STEPentity SCLP23_NAME(Application_instance);
typedef SCLP23(Application_instance) STEPentity;
typedef SCLP23(Application_instance)* STEPentity_ptr;
typedef STEPentity_ptr STEPentity_var;
typedef SCLP23(Application_instance)* STEPentityPtr;
typedef SCLP23(Application_instance)* STEPentityH;
extern SCLP23(Application_instance) *
ReadEntityRef(G4std::istream &in, ErrorDescriptor *err, char *tokenList,
InstMgr * instances, int addFileId);
#define SdaiInteger SCLP23(Integer)
#define SdaiReal SCLP23(Real)
#define STEPenumeration SCLP23(Enum)
#define SdaiSelect SCLP23(Select)
#define SdaiString SCLP23(String)
#define SdaiBinary SCLP23(Binary)
#define S_INT_NULL SCLP23(INT_NULL)
#define S_REAL_NULL SCLP23(REAL_NULL)
#define S_NUMBER_NULL SCLP23(NUMBER_NULL)
/******************************************************************************
AGGREGATE TYPES
Aggregate types are accessed generically. (There are not seperate
classes for the different types of aggregates.) Aggregates are
implemented through the STEPaggregate class.
******************************************************************************/
#ifdef __OSTORE__
SCLP23(BOOL) *create_BOOL(os_database *db);
#else
inline SCLP23(BOOL) *create_BOOL() { return new SCLP23(BOOL) ; }
#endif
#ifdef __OSTORE__
SCLP23(LOGICAL) *create_LOGICAL(os_database *db);
#else
inline SCLP23(LOGICAL) *create_LOGICAL() { return new SCLP23(LOGICAL) ; }
#endif
// below is outdated
typedef SCLP23(Select) * SdaiSelectH;
//#define INT_NULL MAXLONG
// C from limits.h
//#define S_INT_NULL LONG_MAX
//#define S_REAL_NULL 10 ** DBL_MAX_10_EXP
//#define FLT_MIN 1E-37 - port 29-Mar-1994 kcm
// C++ from values.h DAS PORT
//#define REAL_NULL MINFLOAT
// C from float.h
//#define S_REAL_NULL FLT_MIN
//#define NUMBER_NULL MINFLOAT
// C from float.h
//#define S_NUMBER_NULL FLT_MIN
#endif