00001 #ifndef __J2K__TIMEOUT_HPP__
00002 #define __J2K__TIMEOUT_HPP__
00003
00004 #include <j2k/nto/NameSpace.hpp>
00005 #include <j2k/nto/Message.hpp>
00006 #include <j2k/nto/MsgContainer.hpp>
00007 #include <j2k/nto/TimerPulse.hpp>
00008
00009 class Timeout
00010 : public TimerPulse,
00011 public MsgContainer
00012 {
00013 public:
00014 Timeout( NameSpace* n0, ULONG nsec0 = 0, ULONG sec0 = 0);
00015
00016 virtual ~Timeout()
00017 {
00018 }
00019
00020 virtual void run()
00021 {
00022 printf( "Timer running... \n" );
00023 TimerPulse::run();
00024 }
00025
00026 virtual void tick( int signo );
00027 virtual void start();
00028
00029
00030 inline void reset();
00031 inline int getNumber();
00032 inline void setNumber( int nb );
00033 inline int getRequest();
00034 inline void setRequest( int r );
00035 inline int getStatus();
00036 inline void setStatus( int s );
00037 inline int getIndex();
00038 inline void setIndex( int i );
00039 inline int getReceiver();
00040 inline void setReceiver( int id );
00041
00042 inline void reply( int rcvid )
00043 {
00044 message->reply( rcvid );
00045 }
00046
00047 private:
00048 inline Timeout( const Timeout& src );
00049 inline const Timeout& operator= ( const Timeout& src );
00050
00051 protected:
00052 ULONG delay_nsec;
00053 ULONG delay_sec;
00054 int rcvid;
00055 int count;
00056 };
00057
00058 #include <j2k/nto/Timeout.inl>
00059
00060 #endif // End of Timeout.hpp