oaOccConnectDef.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaOccConnectDef.h
00004 //
00005 // This file contains the definition of the oaOccConnectDef class, its derived
00006 // classes, and its public supporting classes. The oaOccConnectDef class is an
00007 // abstract base for occurrences of all types of connection definitions. A
00008 // connection definition specifies an oaAssignmentDef to be used for the
00009 // associated connectivity object. The derived classes include:
00010 //
00011 //  oaOccNetConnectDef
00012 //      This class implements a connectDef that associates a single-bit,
00013 //      explicit net occurrence with a given oaAssignmentDef. The connectDef is
00014 //      interpreted by connectivity traversal applications where the
00015 //      assignmentDef is used to determine the name to use for the associated
00016 //      net.
00017 //
00018 //  oaOccTermConnectDef
00019 //      This class implements a connectDef that is associated with a single-bit,
00020 //      explicit terminal occurrence with a given oaAssignmentDef. The
00021 //      connectDef is interpreted by connectivity traversal applications where
00022 //      the assignmentDef is used to determine the name of the net to externally
00023 //      connect the terminal to.
00024 //
00025 // *****************************************************************************
00026 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00027 // Integration Initiative, this material may not be copied, modified,
00028 // re-published, uploaded, executed, or distributed in any way, in any medium,
00029 // in whole or in part, without prior written permission from Cadence.
00030 //
00031 //                Copyright 2002-2005 Cadence Design Systems, Inc.
00032 //                           All Rights Reserved.
00033 //
00034 //  $Author: icftcm $
00035 //  $Revision: #1 $
00036 //  $Date: 2010/08/09 $
00037 //  $State: Exp $
00038 // *****************************************************************************
00039 // *****************************************************************************
00040 
00041 
00042 
00043 #if !defined(oaOccConnectDef_P)
00044 #define oaOccConnectDef_P
00045 
00046 
00047 
00048 // *****************************************************************************
00049 // Nested includes
00050 // *****************************************************************************
00051 #include "oaAssignmentDef.h"
00052 #include "oaOccTerm.h"
00053 
00054 
00055 
00056 // *****************************************************************************
00057 // Declare and define types in the OpenAccess namespace.
00058 // *****************************************************************************
00059 BEGIN_OA_NAMESPACE
00060 
00061 
00062 
00063 // *****************************************************************************
00064 // oaOccConnectDef
00065 // *****************************************************************************
00066 class OA_DESIGN_DLL_API oaOccConnectDef : public oaOccObject {
00067 public:
00068     void                    getAssignmentDef(oaAssignmentDef &assignmentDef) const;
00069 
00070     enum {dtIndex = oacConnectDefDataType};
00071 };
00072 
00073 
00074 
00075 // *****************************************************************************
00076 // oaOccNetConnectDef
00077 // *****************************************************************************
00078 class OA_DESIGN_DLL_API oaOccNetConnectDef : public oaOccConnectDef {
00079 public:
00080     oaOccBitNet             *getNet() const;
00081 };
00082 
00083 
00084 
00085 // *****************************************************************************
00086 // oaOccTermConnectDef
00087 // *****************************************************************************
00088 class OA_DESIGN_DLL_API oaOccTermConnectDef : public oaOccConnectDef {
00089 public:
00090     oaOccBitTerm            *getTerm() const;
00091 };
00092 
00093 
00094 
00095 // *****************************************************************************
00096 // Design Traits.
00097 // *****************************************************************************
00098 template<>
00099 class oaTraits<oaOccConnectDef> {
00100 public:
00101     typedef oaOccObject             parentType;
00102     typedef oaConnectDefModTypeEnum modTypeType;
00103     enum {domain = oacOccDomain};
00104     enum {isMultiDomain = true};
00105     enum {dbType = oacDesignDBType};
00106     enum {isConcrete = false};
00107     enum {dtIndex = oacConnectDefDataType};
00108     enum {dataTypeEnumVal = oacConnectDefDataType};
00109     enum {abstractTypeEnumVal = oacOccConnectDefType};
00110 };
00111 
00112 template<>
00113 class oaTraits<oaOccNetConnectDef> {
00114 public:
00115     typedef oaConnectDefModTypeEnum modTypeType;
00116     typedef oaOccConnectDef         parentType;
00117     enum {dtIndex = oacConnectDefDataType};
00118     enum {dataTypeEnumVal = oacConnectDefDataType};
00119     enum {domain = oacOccDomain};
00120     enum {isMultiDomain = true};
00121     enum {dbType = oacDesignDBType};
00122     enum {isConcrete = true};
00123     enum {objectTypeEnumVal = oacOccNetConnectDefType};
00124 };
00125 
00126 template<>
00127 class oaTraits<oaOccTermConnectDef> {
00128 public:
00129     typedef oaConnectDefModTypeEnum modTypeType;
00130     typedef oaOccConnectDef         parentType;
00131     enum {dtIndex = oacConnectDefDataType};
00132     enum {dataTypeEnumVal = oacConnectDefDataType};
00133     enum {domain = oacOccDomain};
00134     enum {isMultiDomain = true};
00135     enum {dbType = oacDesignDBType};
00136     enum {isConcrete = true};
00137     enum {objectTypeEnumVal = oacOccTermConnectDefType};
00138 };
00139 
00140 
00141 
00142 END_OA_NAMESPACE
00143 
00144 #endif

Return to top of page