1 #ifndef __JEEP__JFUNCTIONADAPTOR__
2 #define __JEEP__JFUNCTIONADAPTOR__
18 namespace JPP {
using namespace JEEP; }
32 template<
class __pF__>
58 return (
function != NULL);
103 const char* error = dlerror();
132 void open(
const char* file_name)
136 handle = dlopen(file_name, RTLD_LOCAL | RTLD_LAZY);
207 const string::size_type pos = buffer.rfind(
SEPARATOR);
209 if (pos != string::npos) {
211 object.libso = buffer.substr(0,pos);
212 object.symbol = buffer.substr(pos+1);
216 object.libso = buffer;
270 this->
load(libso, symbol);
300 template<
class JReturn_t = void,
class ...Args>
307 typedef JReturn_t (*pF)(Args...);
348 return this->
function(
args...);
Exception for opening of file.
void open(const char *file_name)
Open file.
Exception for reading of file.
JFunctionAdaptorHelper(__pF__ pf)
Constructor.
JFunctionAdaptor(pF pf)
Constructor.
JFunctionAdaptor(const std::string &libso, const std::string &symbol)
Constructor.
Auxiliary base class for function adaptor.
void set(__pF__ pf)
Set function.
static const char SEPARATOR
Separation character between library file name and function name.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
void attach(const JSharedCounter &object)
Attach this counter to given shared counter object.
JFunctionAdaptorHelper(const std::string &libso, const std::string &symbol)
Constructor.
JFunctionAdaptorHelper(const JFunctionAdaptorHelper &helper)
Copy constructor.
JFunctionAdaptor()
Default constructor.
JReturn_t operator()(Args...args) const
Function operation.
JFunctionAdaptorHelper()
Default constructor.
void load(const std::string &libso, const std::string &symbol)
Load function from shared library.
void reload()
Reload function from shared library.
void initialise()
Initialise counter.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
friend std::ostream & operator<<(std::ostream &out, const JFunctionAdaptorHelper &object)
Write function adaptor helper to output stream.
virtual ~JFunctionAdaptorHelper()
Virtual destructor.
void reset()
Reset function adaptor helper.
bool is_valid() const
Check validity of function.
bool is_open() const
Check if shared library file is open.
friend std::istream & operator>>(std::istream &in, JFunctionAdaptorHelper &object)
Read function adaptor helper from input stream.