void DLL_unloaded();If the DLL schema is loaded, marks it for unloading, otherwise does nothing and signals no error. The actual unloading, reconstruction of process type tables, and deletion of the os_schema_handle occurs later (at the end of the transaction).
Unloading a DLL calls DLL_unloaded() from the DLL's termination function and then unloads the DLL. If the rest of the transaction tries to do anything that requires the DLL, or if the transaction is aborted and retried and the retry does not load the DLL, there is likely to be a fatal error.
It is an error to call this function with the os_schema_handle for an application schema. This throws the exception err_invalid_for_application_schema.
const os_app_schema& get() const;Gets a C++ reference to an application or DLL program schema when given its os_schema_handle. The schema must be loaded.
If the schema is not loaded or has been unloaded, an err_schema_not_loaded exception is thrown. This function can be called only while a transaction is in progress and the result is valid only for the duration of that transaction.
static os_schema_handle** get_all( osbool to_load = false );With an argument of false, the default, this function returns a null-terminated array of pointers to os_schema_handle instances that are loaded and not queued to unload. This set corresponds to the current complete program schema.
With a true argument, this function returns a null-terminated array of pointers to the os_schema_handle instances that are queued to load.
The caller must deallocate the array.
static os_schema_handle* get_application_schema_handle();Returns a pointer to the os_schema_handle for the application schema. If the process has no application schema, this returns a pointer to a handle for a dummy schema that contains only ObjectStore's built-in types (essentially the boot schema). This function should be called only after ObjectStore has been initialized.
const char* const* get_DLL_identifiers( os_unsigned_int32& count ) const;Returns an array of pointers to DLL identifiers and the number of elements in the array, given an os_schema_handle. The caller must not modify or deallocate the strings or the array. If the this argument designates an application schema, the result is null and count is set to zero.
os_database& get_schema_database() const;Gets the os_database for the application or DLL schema database.
const char* get_schema_database_pathname() const;Gets the application or DLL schema database pathname.
See also objectstore::get_application_schema_pathname().
os_schema_info& get_schema_info() const;Returns the os_schema_info that contains the DLL identifiers and schema pathname for the schema for which this is the handle.
os_schema_handle_status get_status() const;Returns the loaded/unloaded status of an os_schema_handle. The status is one of the following four symbolic constants:
void insert_required_DLL_identifiers( os_database& db );Records all the DLL identifiers that belong to this os_schema_handle into the database's required DLL set. This function can be called only in an update transaction with the database open for write.
void set_schema_database_pathname (const char* path);Sets the application or DLL schema database pathname. Must be called before the schema is loaded to be effective.
Like objectstore::set_application_schema_pathname, this has a 255-character limit and copies over the existing pathname.
Updated: 03/31/98 17:25:09