#ifndef nam_monitor_h
#define nam_monitor_h
class Animation;
class NetView;
class View;
class Node;
struct MonPacket {
int id;
};
struct MonRoute {
int src;
int group;
Node *node;
};
/*MonState is used when an Animation deletes itself, but it is likely
that another animation will be created soon that should inherit the
monitor*/
#define MON_PACKET 1
#define MON_ROUTE 2
struct MonState {
int type;
union {
MonPacket pkt;
MonRoute route;
};
};
class Monitor {
public:
Monitor(int mon, Animation *a, double size);
~Monitor();
void update(double now, char *result, int len);
inline Monitor *next() const { return next_; }
void next(Monitor *next) { next_=next; }
Animation *anim() const { return anim_; }
void anim(Animation *a) { anim_=a;}
void draw (View *nv, float x, float y);
void size(double size);
void draw_monitor(View *nv, float ymin, float ymax) const;
int monitor_number() const {return mon_num_;}
void delete_monitor_object(Animation *m);
struct MonState *mon_state_;
protected:
Monitor* next_;
int mon_num_;
Animation *anim_;
int paint_;
float x_;
float y_;
double size_;
char label_[20];
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1