Ignore:
Timestamp:
Aug 11, 2009, 8:39:47 AM (15 years ago)
Author:
Christoph Mayer
Message:

watchdog bootstrapping und kleine relay fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/OverlayBootstrap.h

    r4866 r5838  
    4242#include <string>
    4343#include <sstream>
     44#include <ctime>
     45#include <deque>
     46#include <boost/thread/mutex.hpp>
    4447#include "ariba/utility/logging/Logging.h"
    4548#include "ariba/utility/types.h"
     49#include "ariba/utility/system/Timer.h"
    4650#include "ariba/utility/bootstrap/BootstrapManager.h"
    4751#include "ariba/utility/bootstrap/BootstrapInformationCallback.h"
     
    5256#include "ariba/utility/system/SystemEventType.h"
    5357
     58using std::deque;
    5459using std::string;
    5560using std::ostringstream;
     
    6267using ariba::utility::SystemEvent;
    6368using ariba::utility::SystemQueue;
     69using ariba::utility::Timer;
    6470using ariba::utility::SystemEventListener;
    6571
     
    8187        void revoke();
    8288
     89        void recordJoin(const EndpointDescriptor& _ep);
     90
    8391protected:
    8492        virtual void handleSystemEvent(const SystemEvent& event);
     
    8694
    8795private:
    88         typedef struct _EventData {
     96        class EventData {
     97        public:
    8998                SpoVNetID spovnetid;
    9099                NodeID nodeid;
    91100                EndpointDescriptor endpoint;
    92         } EventData;
     101        };
    93102
    94103        BootstrapManager& manager;
     
    98107        string randname;
    99108
     109        class JoinData {
     110        public:
     111                time_t timestamp;
     112                EventData data;
     113
     114                JoinData(const EventData& _data){
     115                        timestamp = time(NULL);
     116                        data = _data;
     117                }
     118
     119                JoinData(){
     120                        timestamp = time(NULL);
     121                }
     122        };
     123
     124        class WatchdogTimer : public Timer {
     125        public:
     126                WatchdogTimer(OverlayBootstrap* _obj);
     127                void startWatchdog();
     128                void stopWatchdog();
     129        protected:
     130                virtual void eventFunction();
     131        private:
     132                OverlayBootstrap* obj;
     133        };
     134
     135        typedef deque<JoinData> JoinStack;
     136        JoinStack lastJoines;
     137        boost::mutex lastJoinesMutex;
     138        WatchdogTimer watchtimer;
     139        void checkOverlayStatus();
    100140};
    101141
Note: See TracChangeset for help on using the changeset viewer.