oaBlockObject.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaBlockObject.h
00004 //
00005 // This file contains the definition for the oaBlockObject class. This is an
00006 // abstract class that is the base for all OpenAccess database objects in the
00007 // block hierarchy.
00008 //
00009 // *****************************************************************************
00010 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00011 // Integration Initiative, this material may not be copied, modified,
00012 // re-published, uploaded, executed, or distributed in any way, in any medium,
00013 // in whole or in part, without prior written permission from Cadence.
00014 //
00015 //                Copyright 2002-2005 Cadence Design Systems, Inc.
00016 //                           All Rights Reserved.
00017 //
00018 //  $Author: icftcm $
00019 //  $Revision: #1 $
00020 //  $Date: 2010/08/09 $
00021 //  $State: Exp $
00022 // *****************************************************************************
00023 // *****************************************************************************
00024 
00025 
00026 
00027 #if !defined(oaBlockObject_P)
00028 #define oaBlockObject_P
00029 
00030 
00031 
00032 // *****************************************************************************
00033 // Nested includes
00034 // *****************************************************************************
00035 #include "oaCollection.h"
00036 #include "oaDesignObject.h"
00037 
00038 
00039 
00040 // *****************************************************************************
00041 // Declare and define types in the OpenAccess namespace.
00042 // *****************************************************************************
00043 BEGIN_OA_NAMESPACE
00044 
00045 
00046 
00047 // *****************************************************************************
00048 // oaBlockDomainVisibilityEnum
00049 // *****************************************************************************
00050 #define oavNumBlockDomainVisibilityTypes    2
00051 
00052 enum oaBlockDomainVisibilityEnum {
00053     oacInheritFromTopBlock      = 0,
00054     oacExcludeFromModuleDomain  = 1
00055 };
00056 
00057 
00058 
00059 // *****************************************************************************
00060 // oaBlockDomainVisibility
00061 // *****************************************************************************
00062 class OA_DESIGN_DLL_API oaBlockDomainVisibility {
00063 public:
00064                                 oaBlockDomainVisibility(oaBlockDomainVisibilityEnum valueIn);
00065                                 oaBlockDomainVisibility(const oaString &name);
00066                                 ~oaBlockDomainVisibility();
00067 
00068     const oaString              &getName() const;
00069 
00070                                 operator                    oaBlockDomainVisibilityEnum() const;
00071 
00072 private:
00073     oaBlockDomainVisibilityEnum value;
00074 
00075     static const oaString       names[];
00076 };
00077 
00078 
00079 
00080 // *****************************************************************************
00081 // oaBlockObject
00082 // *****************************************************************************
00083 class OA_DESIGN_DLL_API oaBlockObject : public oaDesignObject {
00084 public:
00085     oaBoolean                               isNet() const;
00086     oaBoolean                               isBitNet() const;
00087     oaBoolean                               isTerm() const;
00088     oaBoolean                               isBitTerm() const;
00089     oaBoolean                               isInst() const;
00090     oaBoolean                               isBitInst() const;
00091     oaBoolean                               isAssignment() const;
00092     oaBoolean                               isConnectDef() const;
00093     oaBoolean                               isFig() const;
00094     oaBoolean                               isConnFig() const;
00095     oaBoolean                               isPinFig() const;
00096     oaBoolean                               isShape() const;
00097     oaBoolean                               isOccShape() const;
00098     oaBoolean                               isBlockage() const;
00099     oaBoolean                               isTextDisplay() const;
00100     oaBoolean                               isOccTextDisplay() const;
00101     oaBoolean                               isRef() const;
00102     oaBoolean                               isBoundary() const;
00103     oaBoolean                               isVia() const;
00104     oaBoolean                               isViaHeader() const;
00105 
00106     oaBlock                                 *getBlock();
00107 
00108     oaCollection<oaMarker, oaBlockObject>   getMarkersOwnedBy() const;
00109 
00110     enum {domain = oacBlockDomain};
00111 };
00112 
00113 
00114 
00115 // *****************************************************************************
00116 // Design Traits.
00117 // *****************************************************************************
00118 template<>
00119 class oaTraits<oaBlockObject> {
00120 public:
00121     typedef oaDesignObject  parentType;
00122     enum {dbType = oacDesignDBType};
00123     enum {isMultiDomain = false};
00124     enum {isConcrete = false};
00125     enum {domain = oacBlockDomain};
00126     enum {abstractTypeEnumVal = oacBlockObjectType};
00127 };
00128 
00129 
00130 
00131 END_OA_NAMESPACE
00132 
00133 #endif

Return to top of page