#pragma once
#ifdef DLL_EXPORT
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
#include <memory>
#include <string>
struct innerSettings;

class DLL_API Settings {

public:
    Settings(std::shared_ptr<innerSettings>);
    virtual bool isNull() const;
    virtual bool Contains(char*);
    virtual void SetValue(char*, char*);
    virtual std::string GetValue(char*, char*);
    virtual void Remove(char*);
    virtual std::shared_ptr<innerSettings> getInner();
    virtual void setInner(std::shared_ptr<innerSettings>);
private:
    std::shared_ptr<innerSettings> inner=nullptr;
};
