1 #ifndef __JEEP__JFUNCTIONADAPTOR__
2 #define __JEEP__JFUNCTIONADAPTOR__
18 namespace JPP {
using namespace JEEP; }
32 template<
class __pF__>
58 return (
function != NULL);
93 void get(
const char* symbol)
101 function = (__pF__) dlsym(
handle, symbol);
103 const char* error = dlerror();
132 void open(
const char* file_name)
136 handle = dlopen(file_name, RTLD_LOCAL | RTLD_LAZY);
170 open(file_name.c_str());
187 const string::size_type pos = buffer.rfind(
SEPARATOR);
189 if (pos != string::npos) {
191 load(buffer.substr(0,pos).c_str(), buffer.substr(pos+1).c_str());
265 this->
load(file_name, symbol);
291 template<
class JReturn_t =
void,
class JFirst_t =
void,
class JSecond_t =
void>
298 template<
class JReturn_t,
class JFirst_t>
305 typedef JReturn_t (*pF)(JFirst_t);
346 return this->
function(
first);
354 template<
class JReturn_t,
class JFirst_t,
class JSecond_t>
361 typedef JReturn_t (*pF)(JFirst_t, JSecond_t);
403 return this->
function(
first, second);
Exception for opening of file.
void open(const char *file_name)
Open file.
Exception for reading of file.
JFunctionAdaptorHelper(__pF__ pf)
Constructor.
void load(const std::string &buffer)
Load function from shared library.
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.
JFunctionAdaptor(const std::string &file_name, const std::string &symbol)
Constructor.
JFunctionAdaptor(const std::string &file_name, const std::string &symbol)
Constructor.
#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.
JFunctionAdaptor()
Default constructor.
JFunctionAdaptor()
Default constructor.
JReturn_t operator()(JFirst_t first) const
Function operation.
void load(const std::string &file_name, const std::string &symbol)
Load function from shared library.
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
JFunctionAdaptorHelper(const JFunctionAdaptorHelper &helper)
Copy constructor.
JFunctionAdaptorHelper()
Default constructor.
JFunctionAdaptorHelper(const std::string &file_name, const std::string &symbol)
Constructor.
void initialise()
Initialise counter.
JFunctionAdaptor(pF pf)
Constructor.
friend std::ostream & operator<<(std::ostream &out, const JFunctionAdaptorHelper &object)
Write function adaptor helper to output stream.
Exception for parsing value.
virtual ~JFunctionAdaptorHelper()
Virtual destructor.
void reset()
Reset function adaptor helper.
JFunctionAdaptor(pF pf)
Constructor.
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
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.
JReturn_t operator()(JFirst_t first, JSecond_t second) const
Function operation.