QisMlib APIThis API group is used primarily to load an input file (gdsii or Oasis) and to access any extensions that the user will want to use e.g. QisMbool (Boolean operations) or QisMDraw (display) or the ClipExtract library (many window extractions) or QisMNtrc (net tracing.). Click on any of the API class boxes in the illustration to get details on specific functions. |
Initialize the LibraryDescription This function initializes the QisMLib and provides access to it's main API. It also loads the QisMExtensions listed in the qismlib.cfg file and initializes them to facilitate the availability of extension APIs for the client. This function must be called only ONCE in the lifetime of the program The directory containing the QisMLib shared library MUST also contain acs.key, colfill.pat, gdsfont.shx, qismlib.cfg files Do NOT delete/free the handle returned by this function. At the end of the application, close the QisMLib to release the resources and unload the extensions Syntax QISMLIB_DECLSPEC QisMLib_p QisMLib_initialize_once ( const char* execPath, const int argC, const char* const* argT, void* const* argV, char* errorBuf, const int errorBufSize, int* errorCode );Parameters execPath : Full path to the QisMLib shared library argC : Number of optional arguments argT : Array of arguments tags (argC count) argV : Array of argument values matching the corresponding argT (argC count) errorBuf : Address of a character buffer to store the error string in case of failure errorBufSize : Size of the character buffer errorCode : Buffer to retrieve the error code in case of failure Return Success: Non-null handle to the QisMLib API (requires type-case to QisMLib*) Failure: NULL. Error buffer (if specified) contains the error string Closing the Library (and unloading the Extensions)Description Call this function once and only at the end of the application. The QisMLib can be initialized and closed only once so calling this function does not make QisLibM ready for initialization again. All QisMLib handles and APIs should be considered defunct once this function is called. It is the client's responsibility to ensure: All exploders have been destroyed (QisMFile::Destroy_exploder) The QisMFile has been unloaded using QisMLib::Unload_file Syntax QISMLIB_DECLSPEC void QisMLib_close_once(QisMLib_p handle); Parameters handle : Non-null handle to the QisMLib API Informational FunctionsCheck if a file is of a type supported by QisMLib virtual CadFile::Type Get_file_type(const char* filePath) const = 0; Getting the version of a dbload file virtual const char* Get_dbload_version(const char* filePath) const = 0; Getting a handle of an extension using its name virtual QisMExtensionAPI* Get_extension_api(const char* apiName) const = 0; Getting a Report about extensions that are currently loaded virtual const char* Get_extension_report() const = 0; Getting the library version information QISMLIB_DECLSPEC const char* QisMLib_get_lib_info(); Error Collecting and ReportingGet more information about the last error condition in form of an error string virtual const char* Get_last_error_msg() const = 0; Identify the last error condition by means of an error code virtual int Get_last_error_code() const = 0; QisMLib set of error codes struct QisMLibEr { enum Code { EINVPARAM = -1, /* Empty/null name, filepath, address or any other parameter */ EFOPEN = -2, /* Failed to open the file for read */ EINVFILE = -3, /* Un-readable, truncated or un-recognized file */ EINVFORMAT = -4, /* Valid file but in-appropriate format (.scan, .load) */ EINTERNAL = -5, /* Internal error (possible bug) */ ECOLFILL = -6, /* colfill.pat could not be found or opened */ EGDSFONT = -7, /* gdsfont.shx could not be found or opened */ ERESOURCE = -8, /* out of system resources */ ENOAPIFOUND = -9 /* Specified Extension API name does not exist */ }; }; Loading and Unloading Layout FilesCreate a new instance of the file load settings object virtual QisMFileLoadCtrl* New_loadFile_ctrl() = 0; Destroy an instance of the file load settings object virtual void Delete_loadFile_ctrl(QisMFileLoadCtrl* handle) = 0; Load a GDSII/OASIS/Dbload file into the QisMLib database virtual QisMFile* Load_file ( const char* filePath, const QisMFileLoadCtrl* openSettings, QisMNotify* cb ) = 0; Unload the QisMLib database virtual void Unload_file(QisMFile* handle) = 0; |