29 typedef std::multimap<std::string, unsigned int, StringLess>
tIndex;
220 void AddColumn(
const std::string& colName,
221 const std::vector<std::string>& col = std::vector<std::string>());
266 const std::string& atColName,
const std::vector<std::string>& col =
267 std::vector<std::string>());
298 const std::vector<std::string>& col);
325 void AppendToColumn(
const std::string& colName,
const std::string& cell);
353 const std::vector<std::string>& col);
373 void GetColumn(std::vector<std::string>& col,
const std::string& colName);
406 void GetColumn(std::vector<std::string>& col,
const std::string& colName,
407 const unsigned int fromRowIndex,
unsigned int toRowIndex);
432 void GetColumn(std::vector<std::string>& col,
const std::string& colName,
433 const std::vector<unsigned int>& rowIndex);
522 unsigned int AddRow(
const std::vector<std::string>& row =
523 std::vector<std::string>());
571 unsigned int InsertRow(
const unsigned int atRowIndex,
572 const std::vector<std::string>& row = std::vector<std::string>());
598 void FillRow(
const unsigned int rowIndex,
599 const std::vector<std::string>& row);
640 void GetRow(std::vector<std::string>& row,
const unsigned int rowIndex,
641 const std::string& fromColName = std::string(),
642 const std::string& toColName = std::string());
659 void ClearRow(
const unsigned int rowIndex);
679 void DeleteRow(
const unsigned int rowIndex);
698 void DeleteRows(
const std::vector<unsigned int>& rows);
738 void UpdateCell(
const unsigned int rowIndex,
const std::string& colName,
739 const std::string& value);
762 const std::string&
operator()(
const unsigned int rowIndex,
763 const std::string& colName)
const;
789 void SetFlags(
const std::string& colName,
const unsigned char flags);
808 unsigned char GetDataType(
const std::string& colName);
838 #ifdef VLAD_SECOND_ITTABLE
839 unsigned int FindFirst(
const std::vector<std::string>& targets,
840 const std::vector<std::string>& colNames,
841 const std::string& indexName = std::string());
867 #ifdef VLAD_SECOND_ITTABLE
868 void Search(std::vector<unsigned int>& res,
const std::string& target,
901 #ifdef VLAD_SECOND_ITTABLE
902 void Search(std::vector<unsigned int>& res,
903 const std::vector<std::string>& targets,
904 const std::vector<std::string>& colNames,
906 const std::string& indexName = std::string());
940 unsigned int> >& duplRows,
941 const std::vector<std::string>& colNames,
const bool keepDuplRows,
947 const unsigned int rowIndex);
949 const unsigned int rowIndex);
951 const unsigned int rowIndex);
953 int FindIndex(
const std::vector<unsigned int>& colIndices);
954 int SetFlags(
const unsigned char newOpts,
const unsigned int colIndex);
955 unsigned int FindFirst(
const std::vector<std::string>& targets,
956 const std::vector<unsigned int>& colIndices,
const unsigned int indexIndex);
958 void Search(std::vector<unsigned int>& res,
959 const std::vector<std::string>& targets,
960 const std::vector<unsigned int>& colIndices,
961 const unsigned int indexIndex,
964 void Search(std::vector<unsigned int>& res,
const std::string& target,
967 std::vector<std::pair<unsigned int, unsigned int> >& duplRows,
971 const std::vector<std::string>& col = std::vector<std::string>());
973 std::vector<std::string>::const_iterator colBeg,
974 std::vector<std::string>::const_iterator colEnd);
976 const std::string&
operator()(
const unsigned int rowIndex,
977 const unsigned int colIndex)
const;
978 int UpdateCell(
const std::string& cell,
const unsigned int colIndex,
979 const unsigned int rowIndex);
980 void FillColumn(
const std::vector<std::string>& col,
981 const unsigned int colIndex);
983 std::vector<std::string>::const_iterator colBeg,
984 std::vector<std::string>::const_iterator colEnd);
986 const std::vector<std::string>& col);
987 void AppendToColumn(
const unsigned int colIndex,
const std::string& cell);
989 const std::vector<std::string>& col = std::vector<std::string>());
991 std::vector<std::string>::const_iterator colBeg,
992 std::vector<std::string>::const_iterator colEnd);
993 void GetColumn(std::vector<std::string>& col,
const unsigned int colIndex,
994 const unsigned int fromRowIndex,
unsigned int toRowIndex);
995 void GetColumn(std::vector<std::string>& col,
const unsigned int colIndex,
996 const std::vector<unsigned int>& rowIndex);
999 void GetColumn(std::vector<std::string>& col,
const unsigned int colIndex);
1000 void GetRow(std::vector<std::string>& row,
const unsigned int rowIndex,
1001 const unsigned int fromColIndex,
unsigned int toColIndex);
1002 const std::vector<std::string>&
GetRow(
const unsigned int rowIndex);
1004 void CreateIndex(
const std::vector<unsigned int>& colIndices,
1005 const unsigned int unique = 0);
1048 void GetColumn(std::vector<std::string>& col,
const unsigned int colIndex,
1049 const unsigned int indexIndex);
1053 static const unsigned int EXPONENT = 4;
1054 static const unsigned int MAX_PRECISION = DBL_DIG;
1056 static const unsigned int MANTISSA = MAX_PRECISION + 2;
1057 static const unsigned int INT_LIMIT = 11;
1060 static const unsigned char DT_MASK = 15 << 4;
1062 static const unsigned char SC_MASK = 0x01;
1064 static const unsigned char WS_MASK = 0x02;
1065 static const unsigned char LAST_DT_VALUE = 3;
1066 static const unsigned int DEFAULT_PRECISION = MAX_PRECISION;
1067 static const unsigned char DEFAULT_OPTIONS;
1077 std::vector<unsigned char> _compare_opts;
1079 std::vector<std::vector<unsigned int> > _listsOfColumns;
1080 std::vector<unsigned int> _unique;
1081 std::vector<tIndex> _indices;
1083 bool AreListsOfColumnsValid(
const std::vector<unsigned int>& colIndices);
1084 void CreateKey(
const std::vector<unsigned int>& colIndices);
1089 GetCompareType(
const std::vector<unsigned int>& colIndices);
1091 std::string CellValue(
const unsigned int colIndex,
1092 const unsigned int rowIndex);
1093 std::string ConvertString(
const std::string& value,
1094 const unsigned int colIndex);
1095 std::string MultiStringsValue(
const std::vector<std::string>& values,
1096 const std::vector<unsigned int>& colIndices);
1097 std::string SubRowValue(
const std::vector<unsigned int>& colIndices,
1098 const unsigned int rowIndex);
1099 std::string AggregateRow(
const std::vector<unsigned int>& colIndices,
1100 const unsigned int rowIndex);
1102 inline void AppendToAndDelimit(std::string& to,
1103 const std::string& appending);
1105 std::string CreateInternalIndexName(
const unsigned int indexIndex);
1106 void ClearIndex(
const unsigned int indexIndex);
1108 void UpdateIndices(
const unsigned int rowIndex);
1109 void ClearIndices();
1111 bool IsColumnInIndex(
const unsigned int indexIndex,
1112 const unsigned int colIndex);
1116 void UpdateColListOnColInsert(
const unsigned int colIndex);
1117 void UpdateColListOnColDelete(
const unsigned int colIndex);
1118 void UpdateIndicesOnCellUpdate(
const unsigned int rowIndex,
1119 const unsigned int colIndex);
1121 void ConvertToInt(
const std::string& a, std::string& ret);
1122 void ConvertDouble(
const std::string& a, std::string& ret);
1123 void ConvertToLowerNoWhiteSpace(
const std::string& a, std::string& ret);
1125 void Print(
unsigned int indexIndex);
1143 return(_listsOfColumns.size());
1148 inline void ITTable::AppendToAndDelimit(std::string& to,
1149 const std::string& appending)