#pragma once
#include <gio/gio.h>
#include <string>
namespace ggk {
struct DBusObjectPath;
struct GattProperty
{
GattProperty(const std::string &name, GVariant *pValue, GDBusInterfaceGetPropertyFunc getter = nullptr, GDBusInterfaceSetPropertyFunc setter = nullptr);
const std::string &getName() const;
GattProperty &setName(const std::string &name);
const GVariant *getValue() const;
GattProperty &setValue(GVariant *pValue);
GDBusInterfaceGetPropertyFunc getGetterFunc() const;
GattProperty &setGetterFunc(GDBusInterfaceGetPropertyFunc func);
GDBusInterfaceSetPropertyFunc getSetterFunc() const;
GattProperty &setSetterFunc(GDBusInterfaceSetPropertyFunc func);
std::string generateIntrospectionXML(int depth) const;
private:
std::string name;
GVariant *pValue;
GDBusInterfaceGetPropertyFunc getterFunc;
GDBusInterfaceSetPropertyFunc setterFunc;
};
};