class Publisher
{
public:
static Publisher* getInstance();
// Functions for the Subject
void createPublication(
const std::string& fPubName,
Subject* fpPubOwner);
void discontinuePublication(
const std::string& fPubName,
Subject* fpPubOwner);
void publish(
const std::string& fPubName,
Subject *fpPubOwner);
// Functions for the Observer
// (subscriber)
void subscribe(
const std::string& fPubName,
Observer* fpSubscriber);
void unsubscribe(
const std::string& fPubName,
Observer* fpSubscriber);
// ...
};