Skip to content

Commit

Permalink
Add Tony's presentation materials.
Browse files Browse the repository at this point in the history
  • Loading branch information
brycelelbach committed Jul 19, 2016
1 parent 9310fd3 commit ec386ee
Show file tree
Hide file tree
Showing 31 changed files with 2,500 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// example ObserverPattern
// Tony Van Eerd

#include <vector>
#include <algorithm>
#include <string>

class Foo
{
std::string s;

public:
void set(std::string str) {
s = str;
notifyListeners();
}
std::string get() { return s; }

struct Listener
{
virtual void fooChanged(Foo * foo) = 0;
};

void addListener(Listener * listener) {
listeners.push_back(listener);
}

void removeListener(Listener * listener) {
std::remove(listeners.begin(), listeners.end(), listener);
}

private:
void notifyListeners() {
for (auto & listener : listeners)
listener->fooChanged(this);
}

std::vector<Listener*> listeners;
};


Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// example ObserverPattern
// Tony Van Eerd

#include <vector>
#include <algorithm>
#include <string>

class Foo
{
std::string s;

public:
void set(std::string str) {
if (s != str) {
s = str;
notifyListeners();
}
}

std::string get() { return s; }

struct Listener
{
virtual void fooChanged(Foo * foo) = 0;
};

void addListener(Listener * listener) {
listeners.push_back(listener);
}

void removeListener(Listener * listener) {
listeners.erase(std::remove(listeners.begin(), listeners.end(), listener), listeners.end());
}

private:
void notifyListeners() {
for (auto & listener : listeners)
listener->fooChanged(this);
}

std::vector<Listener*> listeners;
};


Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// example ObserverPattern
// Tony Van Eerd

#include <vector>
#include <algorithm>
#include <string>

class Foo
{
std::string s;

public:
void set(std::string str) {
if (s != str) {
s = str;
notifyListeners();
}
}

std::string get() { return s; }

struct Listener
{
virtual void fooChanged(Foo * foo) = 0;
};

void addListener(Listener * listener) {
listeners.push_back(listener);
}

void removeListener(Listener * listener) {
listeners.erase(std::remove(listeners.begin(), listeners.end(), listener));
}

private:
void notifyListeners() {
for (auto & listener : listeners)
listener->fooChanged(this);
}

std::vector<Listener*> listeners;
};


Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// example ObserverPattern
// Tony Van Eerd

#include <vector>
#include <algorithm>
#include <string>

class Foo
{
std::string s;

public:
void set(std::string str) {
if (s != str) {
s = str;
notifyListeners();
}
}

std::string get() { return s; }

struct Listener
{
virtual void fooChanged(Foo * foo) = 0;
};

void addListener(Listener * listener) {
listeners.push_back(listener);
}

void removeListener(Listener * listener) {
listeners.erase(std::find(listeners.begin(), listeners.end(), listener));
}

private:
void notifyListeners() {
for (auto & listener : listeners)
listener->fooChanged(this);
}

std::vector<Listener*> listeners;
};


Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// example ObserverPattern
// Tony Van Eerd

#include <vector>
#include <algorithm>
#include <string>

class Foo
{
std::string s;

public:
void set(std::string str) {
if (s != str) {
s = str;
notifyListeners();
}
}

std::string get() { return s; }

struct Listener
{
virtual void fooChanged(Foo * foo) = 0;
};

void addListener(Listener * listener) {
listeners.push_back(listener);
}

bool removeListener(Listener * listener) {
auto it = std::find(listeners.begin(), listeners.end(), listener);
if (it != listeners.end()) {
listeners.erase(it);
return true;
}
}

private:
void notifyListeners() {
for (auto & listener : listeners)
listener->fooChanged(this);
}

std::vector<Listener*> listeners;
};


Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// example ObserverPattern
// Tony Van Eerd

#include <vector>
#include <algorithm>
#include <string>

class Foo
{
std::string s;

public:
void set(std::string str) {
if (s != str) {
s = str;
notifyListeners();
}
}

std::string get() { return s; }

struct Listener
{
virtual void fooChanged(Foo * foo) = 0;
};

void addListener(Listener * listener) {
listeners.push_back(listener);
}

bool removeListener(Listener * listener) {
auto it = std::find(listeners.rbegin(), listeners.rend(), listener);
if (it != listeners.rend()) {
listeners.erase(it);
return true;
}
return false;
}

private:
void notifyListeners() {
for (auto & listener : listeners)
listener->fooChanged(this);
}

std::vector<Listener*> listeners;
};


Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// example ObserverPattern
// Tony Van Eerd

#include <vector>
#include <algorithm>
#include <string>

class Foo
{
std::string s;

public:
void set(std::string str) {
if (s != str) {
s = str;
notifyListeners();
}
}

std::string get() { return s; }

struct Listener
{
virtual void fooChanged(Foo * foo) = 0;
};

void addListener(Listener * listener) {
listeners.push_back(listener);
}

bool removeListener(Listener * listener) {
auto it = listeners.end();
do {
it--;
if (*it == listener) {
listeners.erase(it);
return true;
}
} while (it != listeners.begin());
return false;
}

private:
void notifyListeners() {
for (auto & listener : listeners)
listener->fooChanged(this);
}

std::vector<Listener*> listeners;
};


Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// example ObserverPattern
// Tony Van Eerd

#include <vector>
#include <algorithm>
#include <string>

class Foo
{
std::string s;

public:
void set(std::string str) {
if (s != str) {
s = str;
notifyListeners();
}
}

std::string get() { return s; }

struct Listener
{
virtual void fooChanged(Foo * foo) = 0;
};

void addListener(Listener * listener) {
listeners.push_back(listener);
}

bool removeListener(Listener * listener) {
for (auto it = listeners.end(); it != listeners.begin(); )
{
it--;
if (*it == listener) {
listeners.erase(it);
return true;
}
}
return false;
}

private:
void notifyListeners() {
for (auto & listener : listeners)
listener->fooChanged(this);
}

std::vector<Listener*> listeners;
};


Loading

0 comments on commit ec386ee

Please sign in to comment.