00001
00002
00003 #ifndef PROBE_H
00004 #define PROBE_H
00005
00006
00007 #include "Node.h"
00008 #include <gnome.h>
00009 #include <pthread.h>
00010
00011 namespace FD {
00012
00013 class Probe : public Node {
00014 protected:
00015
00016 ObjectRef inputValue;
00017
00019 int outputID;
00020
00022 int inputID;
00023
00024 GtkWidget *window1;
00025 GtkWidget *toolbar2;
00026 GtkWidget *button16;
00027 GtkWidget *button17;
00028 GtkWidget *button18;
00029 GtkWidget *button19;
00030 GtkWidget *vbox2;
00031 GtkWidget *entry1;
00032
00033 pthread_mutex_t mutex;
00034 pthread_cond_t cond;
00035 int nbClick;
00036
00037
00038 int breakAt;
00039
00040 int skip;
00041
00042 bool exit_status;
00043
00044 std::string probeName;
00045
00046 bool traceEnable;
00047
00048 bool displayEnable;
00049 public:
00050 Probe(std::string nodeName, ParameterSet params);
00051
00052 virtual ~Probe();
00053
00056 virtual void initialize();
00057
00060 virtual void reset();
00061
00064 virtual ObjectRef getOutput(int output_id, int count);
00065
00067 virtual void request(int outputID, const ParameterSet &req) {
00068 inputs[inputID].node->request(inputs[inputID].outputID,req);
00069 }
00070
00071 virtual void trace();
00072
00073 virtual void next();
00074
00075 virtual void cont();
00076
00077 virtual void setBreak();
00078
00079 virtual void display();
00080
00081 virtual void show_hide();
00082
00083 virtual void stop();
00084 protected:
00086 Probe() {throw new GeneralException("Probe copy constructor should not be called",__FILE__,__LINE__);}
00087
00088 };
00089
00090 }
00091
00092 #endif
00093