00001
00002 #ifndef INCLUDED_ConnectionMadeTrans_h_
00003 #define INCLUDED_ConnectionMadeTrans_h_
00004
00005 #include "Behaviors/Transition.h"
00006 #include "Events/EventRouter.h"
00007 #include "Wireless/Wireless.h"
00008
00009
00010 class ConnectionMadeTrans : public Transition {
00011 public:
00012
00013
00014 ConnectionMadeTrans(StateNode* destination, Socket* sock) : Transition("ConnectionMadeTrans",destination), socket(sock) {}
00015
00016
00017 ConnectionMadeTrans(const std::string& name, StateNode* destination, Socket* sock) :
00018 Transition("ConnectionMadeTrans",name,destination), socket(sock) {}
00019
00020
00021 virtual void DoStart() {
00022 Transition::DoStart();
00023 erouter->addTimer(this,0,32,true);
00024 }
00025
00026
00027 virtual void DoStop() { erouter->removeListener(this); Transition::DoStop(); }
00028
00029
00030 virtual void processEvent(const EventBase&) {
00031 if(socket!=NULL && wireless->isConnected(socket->sock)) {
00032 fire();
00033 }
00034 }
00035
00036 protected:
00037
00038 ConnectionMadeTrans(const std::string &classname, const std::string &instancename, StateNode* destination, Socket* sock) :
00039 Transition(classname,instancename,destination), socket(sock) {}
00040 ConnectionMadeTrans(const ConnectionMadeTrans&);
00041 ConnectionMadeTrans& operator=(const ConnectionMadeTrans&);
00042
00043
00044
00045 Socket* socket;
00046 };
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 #endif