Mercurial Hosting > traffic-intelligence
annotate trajectorymanagement/src/DBSQLiteAccess.h @ 1269:ca70a79688ae
adding a speed threshold to avoid computing TTC at very low speeds
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 05 Jun 2024 10:12:43 -0400 |
parents | e1e7acef8eab |
children |
rev | line source |
---|---|
1159
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
1 #ifndef DBSQLITEACCESS_H_ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 #define DBSQLITEACCESS_H_ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
3 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 #include "opencv2/core/core.hpp" |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
5 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
6 #include <sqlite3.h> |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
7 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
8 #include <sstream> |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
9 #include <string> |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
10 #include <vector> |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
11 #include <map> |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
12 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
13 template<typename T> class TrajectoryElement; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
14 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
15 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
16 * DBSQLiteAccess class. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
17 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
18 * The DBSQLiteAccess class allows to perform basic operations on the database like connecting, disconnecting, creating a table, deleting a table or executing other statements. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
19 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
20 class DBSQLiteAccess |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
21 { |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
22 public: |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
23 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
24 * Constructor. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
25 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
26 DBSQLiteAccess(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
27 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
28 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
29 * Destructor. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
30 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
31 virtual ~DBSQLiteAccess(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
32 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
33 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
34 * Connect to the database. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
35 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
36 * @param[in] database name of the database |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
37 * @return information whether the operation was successful |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
38 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
39 bool connect(const char *database); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
40 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
41 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
42 * Inform whether the connection to the database has been established. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
43 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
44 * @return information whether the connection to the database has been established |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
45 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
46 bool isConnected(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
47 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
48 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
49 * Disconnect from the database. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
50 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
51 * @return information whether the operation was successful |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
52 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
53 bool disconnect(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
54 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
55 int sqliteErrCode(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
56 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
57 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
58 * Get error message. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
59 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
60 * @return last error message |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
61 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
62 const char *sqliteErrMsg(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
63 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
64 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
65 * Execute statement. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
66 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
67 * @param[in] statement statement |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
68 * @return information whether the operation was successful |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
69 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
70 bool executeStatement(const char *statement); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
71 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
72 bool executeStatementGetSingleValue(const char *statement, std::string& result); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
73 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
74 template<typename T> |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
75 bool executeStatementGetSingleValue(const char *statement, T& result) |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
76 { |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
77 char **dbResult = 0; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
78 int nrows, ncols; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
79 bool success = executeStatement(statement, &dbResult, nrows, ncols); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
80 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
81 if (success && nrows == 1 && ncols == 1 && dbResult[1] != NULL) |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
82 { |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
83 std::istringstream is(dbResult[1]); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
84 is >> result; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
85 } |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
86 else |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
87 { |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
88 success = false; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
89 } |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
90 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
91 sqlite3_free_table(dbResult); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
92 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
93 return success; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
94 } |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
95 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
96 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
97 * Execute statement and get results. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
98 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
99 * @param[in] statement statement |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
100 * @return result as a matrix of strings |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
101 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
102 bool executeStatementGetMatrix(const char *statement, std::vector<std::vector<std::string> >& result); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
103 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
104 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
105 * Execute statement and get results of a select. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
106 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
107 * @param[in] statement statement |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
108 * @return result as a matrix of strings |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
109 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
110 bool executeStatementSelect(std::vector<std::vector<std::string> >& result, const char *statement); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
111 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
112 /** Execute statement and get result of select as a list of integers (eg trajectory ids) */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
113 bool executeStatementSelectIntegers(std::vector<int>& result, const char *statement); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
114 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
115 /** Execute statement and get result of select as a list of integers (more than one per row, eg trajectory first and last frames) */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
116 bool executeStatementSelectMultipleIntegers(std::vector<std::vector<int> >& result, const char *statement); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
117 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
118 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
119 * Execute statement and get results of a select for two integers followed by two floats. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
120 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
121 * @param[in] statement statement |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
122 * @return result as a matrix of strings |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
123 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
124 bool executeStatementSelectTrajectoryElements(std::map<int, std::vector<TrajectoryElement<cv::Point2f> > >& trajectoryElements, const char *statement); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
125 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
126 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
127 * Execute statement and get results of a select for two integers (prototype id and matched trajectory id) |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
128 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
129 * @param[in] |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
130 * @return result as a matrix of strings |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
131 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
132 bool executeStatementSelectPrototypeMatches(std::multimap<int,int>& matches, const char *statement); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
133 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
134 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
135 * Execute begin transaction command. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
136 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
137 * @return information whether the operation was successful |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
138 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
139 bool begin(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
140 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
141 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
142 * Execute end transaction command. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
143 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
144 * @return information whether the operation was successful |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
145 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
146 bool end(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
147 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
148 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
149 * Execute rollback transaction command. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
150 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
151 * @return information whether the operation was successful |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
152 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
153 bool rollback(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
154 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
155 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
156 * Execute commit transaction command. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
157 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
158 * @return information whether the operation was successful |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
159 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
160 bool commit(); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
161 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
162 private: |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
163 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
164 * Pointer to SQLite3 class. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
165 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
166 sqlite3 *db; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
167 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
168 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
169 * Information whether a connection has been established. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
170 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
171 bool connected; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
172 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
173 /** |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
174 * Execute statement and get result. |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
175 * |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
176 * @param[in] statement statement |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
177 * @param[out] result results |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
178 * @param[out] nrows of rows in the returned data \a result |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
179 * @param[out] ncols of columns in the returned data \a result |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
180 * @return information whether the operation was successful |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
181 */ |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
182 bool executeStatement(const char *statement, char ***result, int &nrows, int &ncols); |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
183 }; |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
184 |
e1e7acef8eab
moved trajectory management library into Traffic Intelligence
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
185 #endif /* DBSQLITEACCESS_H_ */ |