#ifndef __CONTEXT_TUPLE_H__
#define __CONTEXT_TUPLE_H__
+#include <memory>
#include <vector>
#include <string>
#include <ContextTypes.h>
class EXPORT_API Tuple {
public:
+ Tuple(GVariant* gVar);
~Tuple();
unsigned int size();
bool getAt(unsigned int idx, std::string* val);
bool getAt(unsigned int idx, const char** val);
- static Tuple* duplicate(Tuple& tuple);
+ static std::shared_ptr<Tuple> duplicate(std::shared_ptr<Tuple> tuple);
- static GVariant* toGVariant(Tuple* tuple);
- static GVariant* toGVariant(std::vector<Tuple*>& tuples);
+ static GVariant* toGVariant(std::shared_ptr<Tuple> tuple);
+ static GVariant* toGVariant(std::vector<std::shared_ptr<Tuple>>& tuples);
- static std::vector<Tuple*> buildFrom(GVariant* gVar);
+ static std::vector<std::shared_ptr<Tuple>> buildFrom(GVariant* gVar);
private:
- Tuple(GVariant* gVar);
-
bool __parse();
bool __verify(unsigned int idx, const GVariantType* type);
Builder& add(double val);
Builder& add(const std::string& val);
- Tuple* build();
+ std::shared_ptr<Tuple> build();
private:
bool __init();