mod_loader.h (Firebird-3.0.2.32703-0.tar.bz2) | : | mod_loader.h (Firebird-3.0.4.33054-0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 93 | skipping to change at line 93 | |||
private: | private: | |||
/// Copy construction is not supported, hence the copy constructo r is private | /// Copy construction is not supported, hence the copy constructo r is private | |||
Module(const Module&); // no impl | Module(const Module&); // no impl | |||
/// assignment of Modules isn't supported so the assignment opera tor is private | /// assignment of Modules isn't supported so the assignment opera tor is private | |||
const Module& operator=(const Module&); // no impl | const Module& operator=(const Module&); // no impl | |||
}; | }; | |||
/** loadModule is given as a string the path to the module to load. It | /** loadModule is given as a string the path to the module to load. It | |||
attempts to load the module. If successful it returns the Module Loader::Module | attempts to load the module. If successful it returns the Module Loader::Module | |||
object that represents the loaded module in memory and can be use d to | object that represents the loaded module in memory and can be use d to | |||
perform symbol lookups on the module. If unsuccessful it returns | perform symbol lookups on the module. It is the callers responsib | |||
NULL. | ility to delete | |||
It is the callers responsibility to delete the returned module ob | the returned module object when it is no longer needed. | |||
ject | If unsuccessful it returns NULL. OS-specific error is returned in | |||
when it is no longer needed. | status parameter. | |||
**/ | **/ | |||
static Module* loadModule(const Firebird::PathName&); | static Module* loadModule(ISC_STATUS* status, const Firebird::PathName&); | |||
/** doctorModuleExtension modifies the given path name to add the platfor m | /** doctorModuleExtension modifies the given path name to add the platfor m | |||
specific module extention. This allows the user to provide the r oot name | specific module extention. This allows the user to provide the r oot name | |||
of the file, and the code to append the correct extention regardl ess of the | of the file, and the code to append the correct extention regardl ess of the | |||
host operating system. This function is typically called after a failed attempt | host operating system. This function is typically called after a failed attempt | |||
to load the module without the extention. | to load the module without the extention. | |||
**/ | **/ | |||
static void doctorModuleExtension(Firebird::PathName&); | static void doctorModuleExtension(Firebird::PathName&); | |||
/** Almost like loadModule(), but in case of failure invokes doctorModule Extension() | /** Almost like loadModule(), but in case of failure invokes doctorModule Extension() | |||
and retries. | and retries. | |||
**/ | **/ | |||
static Module* fixAndLoadModule(const Firebird::PathName& modName) | static Module* fixAndLoadModule(ISC_STATUS* status, const Firebird::PathN ame& modName) | |||
{ | { | |||
Module* mod = loadModule(modName); | Module* mod = loadModule(NULL, modName); | |||
if (!mod) | if (!mod) | |||
{ | { | |||
Firebird::PathName fixed(modName); | Firebird::PathName fixed(modName); | |||
doctorModuleExtension(fixed); | doctorModuleExtension(fixed); | |||
mod = loadModule(fixed); | mod = loadModule(status, fixed); | |||
} | } | |||
return mod; | return mod; | |||
} | } | |||
/** isLoadableModule checks the given file to see if it is a loadable | /** isLoadableModule checks the given file to see if it is a loadable | |||
module. This function is required because different operating | module. This function is required because different operating | |||
systems require different checks. | systems require different checks. | |||
**/ | **/ | |||
static bool isLoadableModule(const Firebird::PathName&); | static bool isLoadableModule(const Firebird::PathName&); | |||
}; | }; | |||
End of changes. 5 change blocks. | ||||
9 lines changed or deleted | 9 lines changed or added |