| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- //
- // SharedLibrary.cpp
- //
- // $Id: //poco/1.4/Foundation/src/SharedLibrary.cpp#3 $
- //
- // Library: Foundation
- // Package: SharedLibrary
- // Module: SharedLibrary
- //
- // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
- // and Contributors.
- //
- // SPDX-License-Identifier: BSL-1.0
- //
- #include "Poco/SharedLibrary.h"
- #include "Poco/Exception.h"
- #if defined(hpux) || defined(_hpux)
- #include "SharedLibrary_HPUX.cpp"
- #elif defined(POCO_VXWORKS)
- #include "SharedLibrary_VX.cpp"
- #elif defined(POCO_OS_FAMILY_UNIX)
- #include "SharedLibrary_UNIX.cpp"
- #elif defined(POCO_OS_FAMILY_WINDOWS) && defined(POCO_WIN32_UTF8)
- #include "SharedLibrary_WIN32U.cpp"
- #elif defined(POCO_OS_FAMILY_WINDOWS)
- #include "SharedLibrary_WIN32.cpp"
- #elif defined(POCO_OS_FAMILY_VMS)
- #include "SharedLibrary_VMS.cpp"
- #endif
- namespace Poco {
- SharedLibrary::SharedLibrary()
- {
- }
- SharedLibrary::SharedLibrary(const std::string& path)
- {
- loadImpl(path, 0);
- }
- SharedLibrary::SharedLibrary(const std::string& path, int flags)
- {
- loadImpl(path, flags);
- }
- SharedLibrary::~SharedLibrary()
- {
- }
- void SharedLibrary::load(const std::string& path)
- {
- loadImpl(path, 0);
- }
- void SharedLibrary::load(const std::string& path, int flags)
- {
- loadImpl(path, flags);
- }
- void SharedLibrary::unload()
- {
- unloadImpl();
- }
- bool SharedLibrary::isLoaded() const
- {
- return isLoadedImpl();
- }
- bool SharedLibrary::hasSymbol(const std::string& name)
- {
- return findSymbolImpl(name) != 0;
- }
- void* SharedLibrary::getSymbol(const std::string& name)
- {
- void* result = findSymbolImpl(name);
- if (result)
- return result;
- else
- throw NotFoundException(name);
- }
- const std::string& SharedLibrary::getPath() const
- {
- return getPathImpl();
- }
- std::string SharedLibrary::suffix()
- {
- return suffixImpl();
- }
- } // namespace Poco
|