ndn-cxx: NDN C++ Library 0.9.0-33-g832ea91d
Loading...
Searching...
No Matches
sqlite3-statement.hpp
Go to the documentation of this file.
1/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2013-2023 Regents of the University of California.
4 *
5 * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6 *
7 * ndn-cxx library is free software: you can redistribute it and/or modify it under the
8 * terms of the GNU Lesser General Public License as published by the Free Software
9 * Foundation, either version 3 of the License, or (at your option) any later version.
10 *
11 * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14 *
15 * You should have received copies of the GNU General Public License and GNU Lesser
16 * General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17 * <http://www.gnu.org/licenses/>.
18 *
19 * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20 */
21
22#ifndef NDN_CXX_UTIL_SQLITE3_STATEMENT_HPP
23#define NDN_CXX_UTIL_SQLITE3_STATEMENT_HPP
24
26
27struct sqlite3;
28struct sqlite3_stmt;
29
30namespace ndn::util {
31
36class Sqlite3Statement : noncopyable
37{
38public:
45 Sqlite3Statement(sqlite3* database, const std::string& statement);
46
51
61 int
62 bind(int index, const char* value, size_t size, void(*destructor)(void*));
63
72 int
73 bind(int index, const std::string& value, void(*destructor)(void*));
74
84 int
85 bind(int index, const void* value, size_t size, void(*destructor)(void*));
86
95 int
96 bind(int index, const Block& block, void(*destructor)(void*));
97
105 int
106 bind(int index, int number);
107
111 std::string
112 getString(int column);
113
117 Block
118 getBlock(int column);
119
123 int
124 getInt(int column);
125
129 const uint8_t*
130 getBlob(int column);
131
135 int
136 getSize(int column);
137
141 int
142 step();
143
147 operator sqlite3_stmt*();
148
149private:
150 sqlite3_stmt* m_stmt;
151};
152
153} // namespace ndn::util
154
155#endif // NDN_CXX_UTIL_SQLITE3_STATEMENT_HPP
Represents a TLV element of the NDN packet format.
Definition block.hpp:45
Wrap an SQLite3 prepared statement.
int bind(int index, const char *value, size_t size, void(*destructor)(void *))
Bind a string to the statement.
int getInt(int column)
Get an integer from column.
const uint8_t * getBlob(int column)
Get a pointer of byte blob from column.
Block getBlock(int column)
Get a block from column.
~Sqlite3Statement()
Finalize the statement.
int getSize(int column)
Get the size of column.
int step()
Wrapper of sqlite3_step.
std::string getString(int column)
Get a string from column.