Next: 4 AIBOを動かすには
Up: 3.3 オブジェクト間通信
Previous: 3.3.7 SampleSubjectのソース
[SampleObserver.h]
class SampleObserver : public OObject {
public:
SampleObserver();
virtual ~SampleObserver() {}
OSubject* subject[numOfSubject];
OObserver* observer[numOfObserver];
virtual OStatus DoInit (const OSystemEvent& event);
virtual OStatus DoStart (const OSystemEvent& event);
virtual OStatus DoStop (const OSystemEvent& event);
virtual OStatus DoDestroy(const OSystemEvent& event);
void Notify(const ONotifyEvent& event);
};
[SampleObserver.cc]
#include <OPENR/OSyslog.h>
#include <OPENR/core_macro.h>
#include "SampleObserver.h"
SampleObserver::SampleObserver()
{
}
OStatus
SampleObserver::DoInit(const OSystemEvent& event)
{
NEW_ALL_SUBJECT_AND_OBSERVER;
REGISTER_ALL_ENTRY;
SET_ALL_READY_AND_NOTIFY_ENTRY;
return oSUCCESS;
}
OStatus
SampleObserver::DoStart(const OSystemEvent& event)
{
ENABLE_ALL_SUBJECT;
ASSERT_READY_TO_ALL_OBSERVER;
return oSUCCESS;
}
OStatus
SampleObserver::DoStop(const OSystemEvent& event)
{
DISABLE_ALL_SUBJECT;
DEASSERT_READY_TO_ALL_OBSERVER;
return oSUCCESS;
}
OStatus
SampleObserver::DoDestroy(const OSystemEvent& event)
{
DELETE_ALL_SUBJECT_AND_OBSERVER;
return oSUCCESS;
}
void
SampleObserver::Notify(const ONotifyEvent& event)
{
const char* text = (const char *)event.Data(0);
OSYSPRINT(("SampleObserver::Notify() %s\n", text));
observer[event.ObsIndex()]->AssertReady();
}
generated through LaTeX2HTML. M.Inaba 平成18年5月6日