00001
00002
00003 #ifndef sensor_query_h_
00004 #define sensor_query_h_
00005
00006 #include <agent.h>
00007 #include <ip.h>
00008 #include <delay.h>
00009 #include <scheduler.h>
00010 #include <queue.h>
00011 #include <trace.h>
00012 #include <arp.h>
00013 #include <ll.h>
00014 #include <mac.h>
00015 #include <priqueue.h>
00016 #include <mobilenode.h>
00017 #include <address.h>
00018 #include "tags.h"
00019
00020 class SensorQueryHandler;
00021
00022
00023 class SensorQueryAgent : public Agent {
00024 public:
00025 SensorQueryAgent();
00026 virtual int command(int argc, const char * const * argv);
00027
00028
00029 Trace *tracetarget_;
00030 void trace(char* fmt,...);
00031
00032
00033 nsaddr_t myaddr_;
00034
00035 void startUp();
00036 void stop();
00037
00038 double query_interval_;
00039 void generate_query(int p1, int p2, int p3);
00040
00041
00042 Event *gen_query_event_;
00043 SensorQueryHandler *query_handler_;
00044
00045
00046 void recv(Packet *p, Handler *);
00047
00048
00049 tags_database *tag_dbase_;
00050
00051
00052 int node_dead_;
00053 };
00054
00055
00056
00057
00058 class SensorQueryHandler : public Handler {
00059 public:
00060 SensorQueryHandler(SensorQueryAgent *a) { a_ = a; }
00061 virtual void handle(Event *e) { a_->generate_query(-1,-1,-1); }
00062 private:
00063 SensorQueryAgent *a_;
00064 };
00065
00066
00067 #endif
00068