1 /* 2 * QString Module 3 * 4 * Copyright (C) 2009 Red Hat Inc. 5 * 6 * Authors: 7 * Luiz Capitulino <lcapitulino@redhat.com> 8 * 9 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. 10 * See the COPYING.LIB file in the top-level directory. 11 */ 12 13 #ifndef QSTRING_H 14 #define QSTRING_H 15 16 #include "qapi/qmp/qobject.h" 17 18 struct QString { 19 struct QObjectBase_ base; 20 char *string; 21 size_t length; 22 size_t capacity; 23 }; 24 25 QString *qstring_new(void); 26 QString *qstring_from_str(const char *str); 27 QString *qstring_from_substr(const char *str, size_t start, size_t end); 28 size_t qstring_get_length(const QString *qstring); 29 const char *qstring_get_str(const QString *qstring); 30 const char *qstring_get_try_str(const QString *qstring); 31 const char *qobject_get_try_str(const QObject *qstring); 32 void qstring_append_int(QString *qstring, int64_t value); 33 void qstring_append(QString *qstring, const char *str); 34 void qstring_append_chr(QString *qstring, int c); 35 bool qstring_is_equal(const QObject *x, const QObject *y); 36 char *qstring_free(QString *qstring, bool return_str); 37 void qstring_destroy_obj(QObject *obj); 38 39 #endif /* QSTRING_H */ 40