Skip to content

Instantly share code, notes, and snippets.

class BlogObserver;
class BlogSubject
{
public:
virtual ~BlogSubject() {}
virtual void Subscribe(BlogObserver * observer) = 0;
virtual void Unsubscribe(BlogObserver * observer) = 0;
virtual void Notify() = 0;
};
class BlogObserver
{
public:
virtual ~BlogObserver() {}
virtual void BlogUpdate() = 0;
};
#include "BlogObserver.h"
class MyBlog;
class Boss : public BlogObserver {
public:
Boss(MyBlog * blog);
virtual ~Boss();
virtual void BlogUpdate();
#include "Boss.h"
#include "MyBlog.h"
#include "StringData.h"
#include <iostream>
#include <string>
Boss::Boss(MyBlog * blog)
: m_pBlog(blog)
#include "BlogObserver.h"
class MyBlog;
class CoWorker : public BlogObserver {
public:
CoWorker(MyBlog * blog);
virtual ~CoWorker();
virtual void BlogUpdate();
#include "CoWorker.h"
#include "MyBlog.h"
#include "StringData.h"
#include <iostream>
#include <string>
CoWorker::CoWorker(MyBlog * blog)
: m_pBlog(blog)
#include "BlogObserver.h"
class MyBlog;
class Friend : public BlogObserver {
public:
Friend(MyBlog * blog);
virtual ~Friend();
virtual void BlogUpdate();
#include "Friend.h"
#include "MyBlog.h"
#include "StringData.h"
#include <iostream>
#include <string>
Friend::Friend(MyBlog * blog)
#include "BlogSubject.h"
#include "StringData.h"
#include <pthread.h>
#include <string>
#include <vector>
class MyBlog : public BlogSubject {
public:
#include "MyBlog.h"
#include "BlogObserver.h"
MyBlog::MyBlog()
: m_pBlogData(new BlogData())
{
pthread_mutex_init(&m_mutex, NULL);
}