16 #include "dabc/Factory.h"
28 void* lib = dlopen(fname.c_str(), RTLD_NOW | RTLD_GLOBAL);
31 EOUT(
"Cannot load library %s err:%s", fname.c_str(), dlerror());
35 DOUT1(
"Library loaded %s", fname.c_str());
51 return symbol.empty() ? 0 : dlsym(RTLD_DEFAULT, symbol.c_str());
57 DOUT2(
"Factory %s is created", GetName());
69 EOUT(
"Input object %s cannot be initialized", typ.c_str());
86 EOUT(
"Output object %s cannot be initialized", typ.c_str());
90 DOUT3(
"Creating output transport for port %p", portref());
Represents command with its arguments.
Interface for implementing any kind of data output.
virtual bool Write_Init()
This is generic virtual method to initialize output before real work is started.
FactoryPlugin(dabc::Factory *f)
static void * FindSymbol(const std::string &symbol)
virtual Module * CreateTransport(const Reference &port, const std::string &typ, Command cmd)
Factory method to create transport.
virtual DataOutput * CreateDataOutput(const std::string &typ)
Factory method to create data output.
static bool LoadLibrary(const std::string &fname)
virtual DataInput * CreateDataInput(const std::string &typ)
Factory method to create data input.
Factory(const std::string &name)
static bool CreateManager(const std::string &name="mgr", Configuration *cfg=nullptr)
Manager of everything in DABC
static void ProcessFactory(Factory *factory)
Base for dabc::ModuleSync and dabc::ModuleAsync classes.
Base class for output transport implementations.
Reference on the dabc::Port class
bool IsOutput() const
Returns true if it is output port.
bool IsInput() const
Returns true if it is input port.
Uniform Resource Locator interpreter.