oaSessionObject.h

Go to the documentation of this file.
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

Return to top of page