00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #define LIBSMBIOS_SOURCE
00020 #include "smbios/IObserver.h"
00021 #include "smbios/IFactory.h"
00022
00023 using namespace std;
00024
00025 namespace factory
00026 {
00027 IFactory::~IFactory() {}
00028 IFactory::IFactory() {}
00029 }
00030
00031 namespace observer
00032 {
00033
00034 IObserver::IObserver()
00035 {}
00036
00037 IObserver::~IObserver()
00038 {}
00039
00040 IObservable::IObservable()
00041 {}
00042
00043 IObservable::~IObservable()
00044 {}
00045
00046 void IObservable::attach( IObserver *o ) const
00047 {
00048 observers.push_back(o);
00049 }
00050
00051 void IObservable::detach( IObserver *o ) const
00052 {
00053 observers.remove(o);
00054 }
00055
00056 void IObservable::notify(void *param) const
00057 {
00058 list< IObserver * >::iterator iter;
00059 for( iter = observers.begin(); iter != observers.end(); ++iter )
00060 {
00061 (*iter)->update(this, param);
00062 }
00063 }
00064
00065
00066
00067 }