00001 #ifndef Se_Data_Vector_Included
00002 #define Se_Data_Vector_Included
00003
00004 #include <vector>
00005 #include <iostream>
00006
00007 #ifdef SIMEX_MASTER
00008 #include <gtk/gtk.h>
00009 #endif
00010
00011 #include "se_data.h"
00012 #include "se_string.h"
00013
00014 namespace Se{
00015
00016 class Object;
00017
00018 class Data_Vector:public std::vector<Data *>{
00019
00020 #ifdef SIMEX_MASTER
00021 GtkWidget *name_button;
00022 GtkWidget *size_button;
00023 GtkWidget *data_button;
00024 GtkWidget *type_button;
00025 GtkWidget *mode_button;
00026 GtkWidget *access_button;
00027 GtkWidget *accumulation_button;
00028 GtkWidget *table_name_button;
00029 GtkWidget *table_size_button;
00030 GtkWidget *table_data_button;
00031
00032 Object *parent;
00033 #endif
00034
00035 public:
00036
00037 Data_Vector();
00038 Data *find(String name);
00039
00040
00041 #ifdef SIMEX_MASTER
00042 Data_Vector(Object *parent);
00043 void push_back_and_set_parent(Data *the_data);
00044 void set_parent(Object *the_object);
00045 void set_parent_for_all(Object *the_object);
00046
00047 void build(int x,int y,GtkTable *table);
00048 #endif
00049
00050
00051
00052
00053 void clear_variable(const char *name);
00054 void set_int_variable(const char *name, int value);
00055 void set_float_variable(const char *name,float value);
00056 void set_double_variable(const char *name,double value);
00057 void set_int_table(const char *name, int *value,int size);
00058 void set_float_table(const char *name,float *value,int size);
00059 void set_double_table(const char *name,double *value,int size);
00060 void add_int(const char *name,int value);
00061 void add_float(const char *name,float value);
00062 void add_double(const char *name,double value);
00063
00064
00065
00066
00067 friend std::ostream& operator<< (std::ostream& s,
00068 const Data_Vector& the_vect);
00069 };
00070
00071 std::ostream& operator<< (std::ostream& s,
00072 const Data_Vector& the_vect);
00073
00074
00075 }
00076 #endif