"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/common/os/mod_loader.h" between
Firebird-3.0.2.32703-0.tar.bz2 and Firebird-3.0.4.33054-0.tar.bz2

About: Firebird is a relational database offering many ANSI SQL standard features.

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

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)