/* Copyright 2017-2024 by Altair Engineering Inc. All rights reserved. =========================================================================== This source code belongs to Altair Engineering Inc. It is considered trade secret, and is not to be divulged or used or copied by parties who have not received written authorization from the owner, Altair Engineering Inc. ============================================================================ Title: Edb Create Description: Edb Create functions. Author: Heinz Bruederlin ============================================================================ */ #ifndef EDBCREATE_H #define EDBCREATE_H #include "edbtypes.h" /* -------------------------------------------------------------------------- */ enum EdbStrictFlags { EdbStrictFPedanticSE = 0x1, /* EdbJoin: no multiterms at SPLICE & EYELET */ EdbStrictFIgnoreDupl = 0x2, /* EdbJoin: silently ignore dupl joins */ EdbStrictFRestoreAttr= 0x4, /* EdbRestore: stop after root db attributes */ EdbStrictFValidAttr = 0x8, /* EdbNewAttr*: check reserved attributes */ EdbStrictFDuplIDs = 0x10 /* EdbRestore*: check duplicate IDs */ }; /* -------------------------------------------------------------------------- */ const char* EdbVersion(void); Edb* EdbNew(void); void EdbInitMaxID( Edb*, unsigned max); void EdbSetNextID( Edb*, unsigned id); EdbBool EdbSetHierarchy(Edb*, EdbComponent*); EdbBool EdbCheckHierarchy(Edb*, EdbComponent*); EdbComponent* EdbNewComponent(Edb*, const char*, EdbComponentType); EdbConnector* EdbNewConnector(Edb*,EdbComponent*,const char*, EdbConnectorType); EdbCavity* EdbNewCavityEx( Edb*,EdbConnector*,const char*, EdbCavityType); EdbCavity* EdbNewCavity( Edb*,EdbConnector*,const char*); EdbWire* EdbNewWireEx( Edb*, const char*, EdbWireType); EdbWire* EdbNewWire( Edb*, const char*); EdbMulticore* EdbNewMulticore(Edb*,EdbMulticore*,const char*, EdbMulticoreType); EdbModule* EdbNewModuleEx( Edb*, const char*, EdbModuleType); EdbModule* EdbNewModule( Edb*, const char*); EdbBool EdbNewAttr( Edb*, const char*,const char*); EdbBool EdbNewAttr4Component(Edb*,EdbComponent*,const char*,const char*); EdbBool EdbNewAttr4Connector(Edb*,EdbConnector*,const char*,const char*); EdbBool EdbNewAttr4Cavity( Edb*,EdbCavity*, const char*,const char*); EdbBool EdbNewAttr4Wire( Edb*,EdbWire*, const char*,const char*); EdbBool EdbNewAttr4Multicore(Edb*,EdbMulticore*,const char*,const char*); EdbBool EdbNewAttr4Module( Edb*,EdbModule*, const char*,const char*); const char* EdbCreateAttr( Edb*,EdbObject*, const char*, const char*); const char* EdbUpdateAttr( Edb*,EdbObject*, const char*, const char*); const char* EdbUpdateDupAttr( Edb*,EdbObject*, const char*, int valc, const char* valv[]); void EdbUpdateName( Edb*,EdbObject*, const char*); EdbBool EdbUpdateAttrs( Edb*,EdbObject*, /* internal only */ int argc, const char* [], const char* []); EdbBool EdbValidateAttr( Edb*, const char*, const char*); EdbBool EdbJoin( Edb*, EdbCavity*, EdbWire*); EdbBool EdbJoinShield( Edb*, EdbCavity*, EdbMulticore*); EdbBool EdbPartnerConnector( Edb*, EdbConnector*, EdbConnector*); EdbBool EdbPartnerCavity( Edb*, EdbCavity*, EdbCavity*); EdbBool EdbGroupWire( Edb*, EdbWire*, EdbMulticore*); EdbBool EdbShieldWire( Edb*, EdbWire*, EdbMulticore*); EdbBool EdbAddObject2Module( Edb*, EdbModule*, EdbObject*); EdbBool EdbAddOption2Module( Edb*, EdbModule*, EdbModuleOption); EdbBool EdbAddObjectPair2Module(Edb*, EdbModule*, EdbObject*, EdbObject*); EdbBool EdbAddObjectAttr2Module(Edb*, EdbModule*, EdbObject*, const char*, const char*); EdbBool EdbAutocompleteModule( Edb*, EdbModule*, unsigned flags); void EdbSetStrictMode(Edb*, enum EdbStrictFlags); enum EdbStrictFlags EdbGetStrictMode(Edb*); void EdbDeleteZombies(Edb* edb); void EdbDelete( Edb*); const char* EdbLastError(Edb*); #endif