KDb

KDbSqlString.h
1 /* This file is part of the KDE project
2  Copyright (C) 2016 JarosÅ‚aw Staniek <[email protected]>
3 
4  This program is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Library General Public
6  License as published by the Free Software Foundation; either
7  version 2 of the License, or (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Library General Public License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this program; see the file COPYING. If not, write to
16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18 */
19 
20 #ifndef KDB_SQLSTRING_H
21 #define KDB_SQLSTRING_H
22 
23 #include "kdb_export.h"
24 #include <QByteArray>
25 
26 //! The KDbSqlString class abstracts low-level information about a single string value returned by KDbSqlRecord
27 /**
28  * KDbSqlString exists for optimization purposes. KDbSqlRecord can return KDbSqlString
29  * objects to avoid premature converting to QString or QByteArray. This way memory allocations
30  * are not required.
31  */
33 {
34 public:
35  //! Creates an empty string object
36  inline KDbSqlString() : string(nullptr), length(0) {}
37 
38  //! Creates string object from raw string @a s, of specified length
39  inline KDbSqlString(const char *s, quint64 len) : string(s), length(len) {}
40 
41  //! @return true if this string value is empty. Here, NULL values are considered empty too.
42  inline bool isEmpty() const { return !string || length == 0; }
43 
44  //! @return string value converted to bytea array
45  //! For optimization, raw string data is used via, see QByteArray::fromRawData() for details.
46  //! The caller must not delete data or modify the parent KDbSqlRecord object
47  //! directly as long as the returned QByteArray exists.
48  inline QByteArray rawDataToByteArray() const { return QByteArray::fromRawData(string, length); }
49 
50  const char *string;
51  quint64 length;
52 };
53 
54 #endif
QByteArray fromRawData(const char *data, int size)
QByteArray rawDataToByteArray() const
Definition: KDbSqlString.h:48
The KDbSqlString class abstracts low-level information about a single string value returned by KDbSql...
Definition: KDbSqlString.h:32
bool isEmpty() const
Definition: KDbSqlString.h:42
KDbSqlString(const char *s, quint64 len)
Creates string object from raw string s, of specified length.
Definition: KDbSqlString.h:39
KDbSqlString()
Creates an empty string object.
Definition: KDbSqlString.h:36
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sat Jun 25 2022 06:21:33 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.