00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef ABSTRACT_SERVER_CONTROLLER_H_ 00004 #define ABSTRACT_SERVER_CONTROLLER_H_ 00005 00006 /*CR: The name of the class is AbstractServerController, but we don't have a 00007 * concrete ServerController 00008 */ 00009 00010 namespace fesa 00011 { 00012 00013 class OnDemandProducer; 00014 class SubscriptionTreeManager; 00015 00021 class AbstractServerController 00022 { 00023 public: 00024 00028 AbstractServerController(SubscriptionTreeManager& subscriptionTreeManager); 00032 ~AbstractServerController(); 00033 00038 void initialize(); 00039 00044 OnDemandProducer* getOnDemandProducer(); 00045 00049 void start(); 00050 00051 private: 00052 00053 00058 OnDemandProducer* eventProducer_; 00059 00060 SubscriptionTreeManager& subscriptionTreeManager_; 00061 00062 }; 00063 00064 } // fesa 00065 00066 00067 #endif // ABSTRACT_SERVER_CONTROLLER_H_