/ src / lib /
/src/lib/qstring.cpp
1 #include <QString>
2
3 #include "cl_smoke_qt.h"
4
5 /** @file
6 * @brief QString conversion. */
7
8 extern "C" {
9
10 /** Converts a QString to a QByteArray.
11 * @param qstring Pointer to a QString
12 *
13 * @return a pointer to a newly allocated char array.
14 */
15 CL_SMOKE_QT_EXPORT void*
16 cl_smoke_qstring_to_byte_array(const void* qstring)
17 {
18 const QString* string = static_cast<const QString*>(qstring);
19
20 return new QByteArray(string->toLocal8Bit());
21 }
22
23 /** Frees an QString.
24 * @param qstring the QString to free
25 */
26 CL_SMOKE_QT_EXPORT void
27 cl_smoke_free_qstring(void* qstring)
28 {
29 delete static_cast<QString*>(qstring);
30 }
31
32 /** Converts a string to a QString.
33 * @param data a char array
34 * @param length the length of @a data
35 *
36 * @return a newly allocated QString
37 */
38 CL_SMOKE_QT_EXPORT void*
39 cl_smoke_string_to_qstring(const char* data, int length)
40 {
41 return new QString(QString::fromLocal8Bit(data, length));
42 }
43
44 } // extern "C"