KDb

KDbSqlString.h
1/* This file is part of the KDE project
2 Copyright (C) 2016 Jarosław Staniek <staniek@kde.org>
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{
34public:
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
The KDbSqlString class abstracts low-level information about a single string value returned by KDbSql...
KDbSqlString()
Creates an empty string object.
bool isEmpty() const
QByteArray rawDataToByteArray() const
KDbSqlString(const char *s, quint64 len)
Creates string object from raw string s, of specified length.
QByteArray fromRawData(const char *data, qsizetype size)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:20:59 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.