00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef MYSQLPP_FIELD_NAMES_H
00029 #define MYSQLPP_FIELD_NAMES_H
00030
00031 #include "coldata.h"
00032 #include "string_util.h"
00033
00034 #include <algorithm>
00035 #include <vector>
00036
00037 namespace mysqlpp {
00038
00039 class ResUse;
00040
00042 class FieldNames : public std::vector<std::string>
00043 {
00044 private:
00045 void init(const ResUse * res);
00046
00047 public:
00049 FieldNames() { }
00050
00052 FieldNames(const ResUse* res)
00053 {
00054 init(res);
00055 }
00056
00059 FieldNames(int i) :
00060 std::vector<std::string>(i)
00061 {
00062 }
00063
00065 FieldNames& operator =(const ResUse* res)
00066 {
00067 init(res);
00068 return *this;
00069 }
00070
00072 FieldNames& operator =(int i)
00073 {
00074 insert(begin(), i, "");
00075 return *this;
00076 }
00077
00079 std::string& operator [](int i)
00080 {
00081 return std::vector<std::string>::operator [](i);
00082 }
00083
00086 const std::string& operator [](int i) const
00087 {
00088 return std::vector<std::string>::operator [](i);
00089 }
00090
00092 uint operator [](std::string i) const
00093 {
00094 std::string temp(i);
00095 str_to_lwr(temp);
00096 return uint(std::find(begin(), end(), temp) - begin());
00097 }
00098 };
00099
00100 }
00101
00102 #endif