blob: e7e2d61cb4ddb0af9f1f6ab534bcdbf1ce584439 [file] [log] [blame]
#ifndef VAB_VAB_PROVIDER_OBJ_VABMODELPROVIDER_H
#define VAB_VAB_PROVIDER_OBJ_VABMODELPROVIDER_H
#include <BaSyx/vab/core/IModelProvider.h>
#include <BaSyx/vab/core/util/VABPath.h>
#include <BaSyx/shared/object.h>
#include <BaSyx/shared/types.h>
#include <BaSyx/log/log.h>
namespace basyx {
namespace vab {
namespace provider {
class VABModelProvider : public vab::core::IModelProvider
{
private:
basyx::log log;
basyx::object elements;
public:
VABModelProvider() = default;
VABModelProvider(const basyx::object& any);
public:
basyx::object getParentElement(const std::string& path);
basyx::object getTargetElement(const std::string& path);
public:
virtual basyx::object getModelPropertyValue(const std::string& path) override;
virtual basyx::object::error setModelPropertyValue(const std::string& path, const basyx::object newValue) override;
virtual basyx::object::error createValue(const std::string& path, const basyx::object newValue) override;
virtual basyx::object::error deleteValue(const std::string& path, basyx::object deletedValue) override;
virtual basyx::object::error deleteValue(const std::string& path) override;
virtual basyx::object invokeOperation(const std::string& path, basyx::object parameters) override;
};
}
}
}
#endif /* VAB_VAB_PROVIDER_VABMODELPROVIDER_H */