15#ifndef CXXUTILS_SEAL_SHAREDLIB_H
16#define CXXUTILS_SEAL_SHAREDLIB_H
36 Callback1Rep (
void) : m_refs (0) { }
37 virtual ~Callback1Rep (
void) { }
39 virtual void call (T1) = 0;
40 virtual bool equal (
const Callback1Rep *
x)
const = 0;
42 void ref (
void) { ++m_refs; }
43 void unref (
void) {
if (--m_refs == 0)
delete this; }
53 Callback1 (Callback1Rep<T1> *implementation = 0);
54 Callback1 (
const Callback1 &
x);
59 operator bool (
void)
const;
66template <
class T1,
class T2>
80 virtual bool equal (
const Callback1Rep<T1> *other)
const
81 {
const self *
x =
dynamic_cast<const self *
> (other);
91Callback1<T1>::Callback1 (Callback1Rep<T1> *implementation )
92 :
m_rep (implementation)
97Callback1<T1>::Callback1 (
const Callback1<T1> &
x)
103Callback1<T1>::~Callback1 (
void)
107inline Callback1<T1> &
108Callback1<T1>::operator= (
const Callback1<T1> &
x)
121Callback1<T1>::operator== (
const Callback1<T1> &
x)
const
126Callback1<T1>::operator
bool (
void)
const
127{
return m_rep ? true :
false; }
131Callback1<T1>::operator() (T1
a)
134template <
class T1,
class T2>
135inline Callback1Rep<T1> *
149 virtual const char*
what()
const throw();
177 static std::string
path (
void);
179 static std::string
libname (
const std::string &name);
180 static std::string
symname (
const std::string &name);
189 Data data (
const std::string &name,
bool mangle =
true)
const;
const boost::regex ref(r_ef)
ElementLink & operator=(const ElementLink &)=default
bool operator==(const DataVector< T > &a, const DataVector< T > &b)
Vector equality comparison.
char data[hepevt_bytes_allocation_ATLAS]
Callback1Rep< T1 > * CreateCallback(void(*function)(T1, T2), const T2 &fill_2)
Callback1Rep< T1 > * m_rep
Define macros for attributes used to control the static checker.
CallbackImpF11(void(*function)(T1, T2), const T2 &fill_2)
void(* m_function)(T1, T2)
virtual bool equal(const Callback1Rep< T1 > *other) const
virtual ~SharedLibraryError()
virtual const char * what() const
SharedLibraryError(const std::string &context, const std::string &cause)
static std::string symname(const std::string &name)
Transform 'extern "C"' symbol name into a name suitable for lookup in a shared library,...
static SharedLibrary * self(void)
Return a shared library object representing the application itself.
static void path ATLAS_NOT_THREAD_SAFE(const std::string &path)
Function function(const std::string &name, bool mangle=true) const
Locate and return a reference to a function symbol called name.
Callback1< const LibraryInfo & > InfoHandler
static std::string path(void)
static void loaded(InfoHandler &handler)
Iterate and provide information about all currently loaded shared libraries.
static SharedLibrary * load(const std::string &name)
Load a shared library and return an object representing it.
SharedLibrary(const SharedLibrary &)
static std::string libname(const std::string &name)
Return a shared library name that follows the system conventions for naming shared library.
void abandon(void)
Abandon a library.
SharedLibrary(void *handle)
Protected constructor for initialising a library object.
static std::string release
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....
bool equal(double a, double b)
Compare two FP numbers, working around x87 precision issues.
call(args, bufsize=0, executable=None, stdin=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0, message="", logger=msg, loglevel=None, timeout=None, retry=2, timefactor=1.5, sleeptime=10)
setBGCode setTAP setLVL2ErrorBits bool
void handler(int sig)
signal handler
Information about a currently loaded shared library.
unsigned long m_bss_start
unsigned long m_text_start
unsigned long m_data_start