00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _FL_PARAMS_H_
00019 #define _FL_PARAMS_H_
00020
00021 #include "../Fl_String.h"
00022 #include "../Fl_Variant.h"
00023 #include "../Fl_Ptr_List.h"
00024
00030 class Fl_Param : public Fl_Variant {
00031 Fl_String m_name;
00032 Fl_Ptr_List m_bindParamIndexes;
00033 bool m_null;
00034 char *m_conversionBuffer;
00035 public:
00036 Fl_Param(const char *name);
00037 ~Fl_Param();
00038
00039 void is_null(bool n) { m_null = n; }
00040 bool is_null() const { return m_null; }
00041
00042 char *conversion_buffer() { return m_conversionBuffer; }
00043
00044 const Fl_String& name() const { return m_name; }
00045 void bind_clear() { m_bindParamIndexes.clear(); }
00046 void bind_add(unsigned bindIndex);
00047 unsigned bind_count() { return m_bindParamIndexes.count(); }
00048 unsigned bind_index(unsigned ind) { return (unsigned)m_bindParamIndexes[ind]; }
00049
00050
00051 Fl_Variant& operator =(const Fl_Variant &C) {
00052 if (this == &C) return *this;
00053 set_data(C);
00054 return *this;
00055 }
00056
00057 Fl_Variant& operator =(const char *s) {
00058 set_string(s);
00059 return *this;
00060 }
00061
00062 Fl_Variant& operator =(const Fl_String &s) {
00063 set_string(s.c_str(), s.length());
00064 return *this;
00065 }
00066
00067 Fl_Variant& operator =(int v) {
00068 set_int(v);
00069 return *this;
00070 }
00071
00072 Fl_Variant& operator =(double v) {
00073 set_float(v);
00074 return *this;
00075 }
00076
00077 Fl_Variant& operator =(Fl_Date_Time dt) {
00078 set_date(dt);
00079 return *this;
00080 }
00081
00082 Fl_Variant& operator =(const Fl_Image *pm) {
00083 set_image_ptr(pm);
00084 return *this;
00085 }
00086 };
00087
00088 class Fl_Params {
00089 Fl_Ptr_List m_items;
00090 void clear();
00091 public:
00092 Fl_Params() {};
00093 ~Fl_Params() { clear(); }
00094
00095 int param_index(const char *paramName);
00096 Fl_Param& operator[] (unsigned index) const;
00097 Fl_Param& operator[] (const char *paramName) const;
00098 Fl_Param& operator[] (const Fl_String& paramName) const;
00099 void add(const Fl_Param * item);
00100 void remove(unsigned index);
00101 unsigned count() const { return m_items.count(); }
00102 };
00103
00104 #endif