From ae896d73d4914fa96f053a0443f6b05003c12b35 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Wed, 4 Jul 2007 03:24:48 +0000 Subject: 2007-07-02 +#include + + +namespace qpid { +namespace sys { + +void Shlib::load(const char* name) { + dlerror(); + handle = ::dlopen(name, RTLD_NOW); + const char* error = ::dlerror(); + if (error) { + THROW_QPID_ERROR(INTERNAL_ERROR, error); + } +} + +void Shlib::unload() { + if (handle) { + ::dlerror(); + ::dlclose(handle); + const char* error = ::dlerror(); + if (error) { + THROW_QPID_ERROR(INTERNAL_ERROR, error); + } + handle = 0; + } +} + +void* Shlib::getSymbol(const char* name) { + ::dlerror(); + void* sym = ::dlsym(handle, name); + const char* error = ::dlerror(); + if (error) + THROW_QPID_ERROR(INTERNAL_ERROR, error); + return sym; +} + +}} // namespace qpid::sys -- cgit v1.2.1