Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. // "interface"
  2. class UMSConnector {
  3. public:
  4. static UMSConnector * instance(const string& name) {
  5. static UMSConnector *pInstance;
  6. if( ! pInstance ) {
  7. pInstance = new UMSConnector(name);
  8. return pInstance;
  9. }
  10. return pInstance;
  11. }
  12.  
  13. // interface API to be implemented by UMSConnector_impl
  14. bool addEventHandler(string event);
  15.  
  16. private:
  17. class UMSConnector_impl;
  18. UMSConnector_impl *pImpl;
  19. Logger log;
  20. string name;
  21.  
  22. UMSConnector(const string& name);
  23. ~UMSConnector();
  24. UMSConnector(UMSConnector const& ) {}; // copy constructor
  25. void operator=(const UMSConnector&) {}; // assignment constructor
  26. };
  27.  
  28. UMSConnector::UMSConnector(const string& name)
  29. : name(name) {
  30. LOG_TRACE(log,"called");
  31. pImpl = new UMSConnector_impl();
  32. }
  33.  
  34. UMSConnector::~UMSConnector() {
  35. LOG_TRACE(log,"called");
  36. delete pImpl;
  37. pImpl = NULL;
  38. }
  39.  
  40. bool UMSConnector::addEventHandler(string event)
  41. {
  42. if( pImpl ) {
  43. return pImpl->addEventHandler(event);
  44. }
  45. return false;
  46. }
  47.  
  48. // "implementation"
  49. class UMSConnector::UMSConnector_impl {
  50. public:
  51. bool addEventHandler(const string& event);
  52.  
  53. private:
  54. Logger log;
  55. };
  56.  
  57. bool UMSConnector::UMSConnector_impl::addEventHandler(const string& event)
  58. {
  59. LOG_TRACE(log,"UMSConnector_impl::addEventHandler: event=%s",event.c_str());
  60. return true;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement