00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaSessionObject.h 00004 // 00005 // This file contains the definition for the oaSessionObject class. This is an 00006 // abstract class that is the base for all OpenAccess session objects. 00007 // 00008 // The oaSession database is a VM-only database which serves as a parent to 00009 // session objects: transient objects which are valid across the entire OA 00010 // session. 00011 // 00012 // These session objects may have a persistent representation. In some cases, 00013 // the session objects represent information that is a superset of information 00014 // compiled from the databases which are opened in the OA session. 00015 // 00016 // It is not legal to create properties or appDefs on session objects, nor is 00017 // it legal to add these objects to groups. 00018 // ***************************************************************************** 00019 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00020 // Integration Initiative, this material may not be copied, modified, 00021 // re-published, uploaded, executed, or distributed in any way, in any medium, 00022 // in whole or in part, without prior written permission from Cadence. 00023 // 00024 // Copyright 2003-2005 Cadence Design Systems, Inc. 00025 // All Rights Reserved. 00026 // 00027 // $Author: icftcm $ 00028 // $Revision: #1 $ 00029 // $Date: 2010/08/09 $ 00030 // $State$ 00031 // ***************************************************************************** 00032 // ***************************************************************************** 00033 00034 00035 00036 #if !defined(oaSessionObject_P) 00037 #define oaSessionObject_P 00038 00039 00040 00041 // ***************************************************************************** 00042 // Nested includes 00043 // ***************************************************************************** 00044 #include "oaObject.h" 00045 00046 00047 00048 // ***************************************************************************** 00049 // Declare and define types in the OpenAccess namespace. 00050 // ***************************************************************************** 00051 BEGIN_OA_NAMESPACE 00052 00053 00054 00055 // ***************************************************************************** 00056 // Forward Public Class Declarations 00057 // ***************************************************************************** 00058 class oaSession; 00059 00060 00061 00062 // ***************************************************************************** 00063 // oaSessionDataTypeEnum 00064 // 00065 // The first entry is a special datatype that is used for the database itself. 00066 // The next six entries are reserved and are common to all databases. They are 00067 // only included for compatibility with other databases. AppDefs, properties 00068 // and groups are illegal on a session database. avatars are not implemented 00069 // on session databases. 00070 // 00071 // Session object tables are dynamically registered on the session database as 00072 // needed, therefore these dataTypes are not pre-defined, but rather dynamically 00073 // allocated. 00074 // 00075 // Note: the number of datatypes should not include the special datatype: 00076 // oacDMSessionDataType. 00077 // ***************************************************************************** 00078 #define oavNumSessionDataTypes 23 00079 #define oavNumNewSessionDataTypes 6 00080 00081 enum oaSessionDataTypeEnum { 00082 oacSessionDataType = UINT_MAX, 00083 oacSessionAppObjectDataType = UINT_MAX - 1, 00084 oacSessionPropDataType = 0, 00085 oacSessionGroupDataType = 1, 00086 oacSessionGroupMemDataType = 2, 00087 oacSessionAvatarDataType = 3, 00088 oacSessionValueDataType = 4, 00089 oacSessionConstraintParamDefDataType = 5, 00090 oacSessionConstraintParamDataType = 6, 00091 oacSessionConstraintDefDataType = 7, 00092 oacSessionConstraintDataType = 8, 00093 oacSessionConstraintGroupDataType = 9, 00094 oacSessionConstraintGroupMemDataType = 10, 00095 oacSessionConstraintGroupHeaderDataType = 11, 00096 oacLibDefListDataType = 12, 00097 oacLibDefListMemDataType = 13, 00098 oacViewTypeDataType = 14, 00099 oacAppDefDataType = 15, 00100 oacAppObjectDefDataType = 16, 00101 00102 oacSessionFeatureDataType = 17, 00103 oacSessionFeaturePolicyDataType = 18, 00104 oacSessionDerivedLayerParamDefDataType = 19, 00105 oacSessionDerivedLayerDefDataType = 20, 00106 oacSessionGroupDefDataType = 21, 00107 oacSessionConstraintGroupDefDataType = 22 00108 }; 00109 00110 00111 00112 // ***************************************************************************** 00113 // oaSessionObject 00114 // ***************************************************************************** 00115 class OA_BASE_DLL_API oaSessionObject : public oaObject { 00116 public: 00117 oaSession *getSession() const; 00118 }; 00119 00120 00121 00122 // ***************************************************************************** 00123 // Traits 00124 // ***************************************************************************** 00125 template<> 00126 class oaTraits<oaSessionObject> { 00127 public: 00128 typedef oaObject parentType; 00129 enum {domain = oacNoDomain}; 00130 enum {isMultiDomain = false}; 00131 enum {isConcrete = false}; 00132 enum {dbType = oacBaseDBType}; 00133 enum {abstractTypeEnumVal = oacSessionObjectType}; 00134 }; 00135 00136 00137 00138 END_OA_NAMESPACE 00139 00140 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.