Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // "interface"
- class UMSConnector {
- public:
- static UMSConnector * instance(const string& name) {
- static UMSConnector *pInstance;
- if( ! pInstance ) {
- pInstance = new UMSConnector(name);
- return pInstance;
- }
- return pInstance;
- }
- // interface API to be implemented by UMSConnector_impl
- bool addEventHandler(string event);
- private:
- class UMSConnector_impl;
- UMSConnector_impl *pImpl;
- Logger log;
- string name;
- UMSConnector(const string& name);
- ~UMSConnector();
- UMSConnector(UMSConnector const& ) {}; // copy constructor
- void operator=(const UMSConnector&) {}; // assignment constructor
- };
- UMSConnector::UMSConnector(const string& name)
- : name(name) {
- LOG_TRACE(log,"called");
- pImpl = new UMSConnector_impl();
- }
- UMSConnector::~UMSConnector() {
- LOG_TRACE(log,"called");
- delete pImpl;
- pImpl = NULL;
- }
- bool UMSConnector::addEventHandler(string event)
- {
- if( pImpl ) {
- return pImpl->addEventHandler(event);
- }
- return false;
- }
- // "implementation"
- class UMSConnector::UMSConnector_impl {
- public:
- bool addEventHandler(const string& event);
- private:
- Logger log;
- };
- bool UMSConnector::UMSConnector_impl::addEventHandler(const string& event)
- {
- LOG_TRACE(log,"UMSConnector_impl::addEventHandler: event=%s",event.c_str());
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement