/** -------------------------------------------------------------------- * @file broker.h * @brief Declaration of the Broker class. * @author Andreas Aardal Hanssen * @date 2002-2005 * ----------------------------------------------------------------- **/ #ifndef broker_h_included #define broker_h_included #include "depot.h" #include "operators.h" #include #include namespace Binc { class Request; class Broker; //------------------------------------------------------------------ class BrokerFactory { private: std::map brokers; //-- BrokerFactory(void); mutable std::string lastError; public: Broker *getBroker(int state); void assign(const std::string &fname, Operator *o); void addCapability(const std::string &c); Operator *getOperator(int state, const std::string &name) const; inline const std::string &getLastError(void) const; inline void setLastError(const std::string &error) const; //-- static BrokerFactory &getInstance(void); ~BrokerFactory(void); }; //------------------------------------------------------------------ inline const std::string &BrokerFactory::getLastError(void) const { return lastError; } //------------------------------------------------------------------ inline void BrokerFactory::setLastError(const std::string &error) const { lastError = error; } //------------------------------------------------------------------ class Broker { private: std::map operators; std::map deletables; public: Operator * get(const std::string &name) const; void assign(const std::string &fname, Operator *o, bool deletable = false); Operator::ParseResult parseStub(Request &cmd); //-- inline Broker(Broker &); inline Broker(const Broker &); Broker(void); ~Broker(void); }; inline Broker::Broker(Broker &) { } inline Broker::Broker(const Broker &) { } } #endif