oaLibDefList.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaLibDefList.h
00004 //
00005 // This file contains the declaration of the oaLibDefList class. This class
00006 // implements an ordered list of library definitions. Library definition lists
00007 // can be nested by having a reference to another list as a member. An
00008 // oaLibDefList object allows the user to query and manage the contents of
00009 // their library definition files.
00010 //
00011 // *****************************************************************************
00012 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00013 // Integration Initiative, this material may not be copied, modified,
00014 // re-published, uploaded, executed, or distributed in any way, in any medium,
00015 // in whole or in part, without prior written permission from Cadence.
00016 //
00017 //                Copyright 2002-2005 Cadence Design Systems, Inc.
00018 //                           All Rights Reserved.
00019 //
00020 //  $Author: icftcm $
00021 //  $Revision: #1 $
00022 //  $Date: 2010/08/09 $
00023 //  $State$
00024 // *****************************************************************************
00025 // *****************************************************************************
00026 
00027 
00028 
00029 #if !defined(oaLibDefList_P)
00030 #define oaLibDefList_P
00031 
00032 
00033 
00034 // *****************************************************************************
00035 // Nested includes
00036 // *****************************************************************************
00037 #include "oaSessionObject.h"
00038 #include "oaCollection.h"
00039 #include "oaDMTypes.h"
00040 #include "oaBaseModTypes.h"
00041 
00042 
00043 
00044 // *****************************************************************************
00045 // Declare and define types in the OpenAccess namespace.
00046 // *****************************************************************************
00047 BEGIN_OA_NAMESPACE
00048 
00049 
00050 
00051 // *****************************************************************************
00052 // oaLibDefListWarningEnum
00053 // *****************************************************************************
00054 enum oaLibDefListWarningTypeEnum {
00055     oacNoDefaultLibDefListWarning           = 0,
00056     oacCannotOpenDefaultLibDefListWarning   = 1,
00057     oacSyntaxErrorLibDefListWarning         = 2,
00058     oacCannotOpenIncludeLibDefListWarning   = 3,
00059     oacRecursiveIncludeLibDefListWarning    = 4,
00060     oacMultiDefinitionsLibDefListWarning    = 5,
00061     oacCannotOpenLibLibDefListWarning       = 6,
00062     oacUndefinedVarLibDefListWarning        = 7,
00063     oacLibNameUndefinedLibDefListWarning    = 8
00064 };
00065 
00066 
00067 
00068 // *****************************************************************************
00069 // oaLibDefList
00070 // *****************************************************************************
00071 class OA_DM_DLL_API oaLibDefList : public oaSessionObject {
00072 public:
00073     static void                                     openLibs();
00074     static void                                     openLibs(const oaString &path);
00075 
00076     static oaLibDefList                             *getTopList();
00077     static void                                     getDefaultPath(oaString &path);
00078     static void                                     getDefaultFileName(oaString &libDefName);
00079 
00080     static oaLibDefList                             *create(const oaString &filePath);
00081 
00082     static oaLibDefList                             *get(const oaString &filePath,
00083                                                          oaChar         mode);
00084 
00085     static oaLibDefList                             *find(const oaString &filePath);
00086 
00087     void                                            open();
00088 
00089     void                                            save();
00090     void                                            saveAs(const oaString &path);
00091 
00092     void                                            getPath(oaString &path) const;
00093     void                                            getFullPath(oaString &path) const;
00094     oaChar                                          getMode() const;
00095 
00096     void                                            destroy();
00097 
00098     oaCollection<oaLibDefListMem, oaLibDefList>     getMembers() const;
00099     static oaCollection<oaLibDefList, oaLibDefList> getLibDefLists();
00100 };
00101 
00102 
00103 
00104 // *****************************************************************************
00105 // Traits
00106 // *****************************************************************************
00107 template<>
00108 class oaTraits<oaLibDefList> {
00109 public:
00110     typedef oaSessionObject         parentType;
00111     typedef oaLibDefListModTypeEnum modTypeType;
00112     enum {domain = oacNoDomain};
00113     enum {isMultiDomain = false};
00114     enum {dbType = oacBaseDBType};
00115     enum {isConcrete = true};
00116     enum {objectTypeEnumVal = oacLibDefListType};
00117 };
00118 
00119 
00120 
00121 END_OA_NAMESPACE
00122 
00123 #endif

Return to top of page