+
+void ObservableMetadataProvider::addObserver(const Observer* newObserver) const
+{
+ Lock lock(m_observerLock);
+ m_observers.push_back(newObserver);
+}
+
+const ObservableMetadataProvider::Observer* ObservableMetadataProvider::removeObserver(const Observer* oldObserver) const
+{
+ Lock lock(m_observerLock);
+ for (vector<const Observer*>::iterator i=m_observers.begin(); i!=m_observers.end(); i++) {
+ if (oldObserver==(*i)) {
+ m_observers.erase(i);
+ return oldObserver;
+ }
+ }
+ return NULL;
+}
+
+ObservableMetadataProvider::Observer::Observer()
+{
+}
+
+ObservableMetadataProvider::Observer::~Observer()
+{
+}