You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
71 lines
1.9 KiB
|
7 months ago
|
/*
|
||
|
|
* Copyright 2023 Ingemar Hedvall
|
||
|
|
* SPDX-License-Identifier: MIT
|
||
|
|
*/
|
||
|
|
|
||
|
|
#pragma once
|
||
|
|
|
||
|
|
#include <map>
|
||
|
|
#include <memory>
|
||
|
|
#include <string>
|
||
|
|
#include <cstdint>
|
||
|
|
#include <vector>
|
||
|
|
|
||
|
|
#include "a2l/a2lobject.h"
|
||
|
|
|
||
|
|
|
||
|
|
namespace a2l {
|
||
|
|
|
||
|
|
class Transformer : public A2lObject {
|
||
|
|
public:
|
||
|
|
void Version(const std::string& version) { version_ = version; }
|
||
|
|
[[nodiscard]] const std::string& Version() const {return version_; }
|
||
|
|
|
||
|
|
void Executable32(const std::string& exe) { executable32_ = exe; }
|
||
|
|
[[nodiscard]] const std::string& Executable32() const {return executable32_; }
|
||
|
|
|
||
|
|
void Executable64(const std::string& exe) { executable64_ = exe; }
|
||
|
|
[[nodiscard]] const std::string& Executable64() const {return executable64_; }
|
||
|
|
|
||
|
|
void Timeout(uint64_t timeout) { timeout_ = timeout; }
|
||
|
|
[[nodiscard]] uint64_t Timeout() const {return timeout_; }
|
||
|
|
|
||
|
|
void Trigger(A2lTrigger trigger) { trigger_ = trigger; }
|
||
|
|
[[nodiscard]] A2lTrigger Trigger() const { return trigger_; }
|
||
|
|
|
||
|
|
void InverseTransformer(const std::string& inverse) {
|
||
|
|
inverse_transformer_ = inverse;
|
||
|
|
}
|
||
|
|
[[nodiscard]] const std::string& InverseTransformer() const {
|
||
|
|
return inverse_transformer_;
|
||
|
|
}
|
||
|
|
|
||
|
|
void TransformerInObjects(const std::vector<std::string>& list) {
|
||
|
|
in_object_list_ = list;
|
||
|
|
}
|
||
|
|
[[nodiscard]] const std::vector<std::string>& TransformerInObjects() const {
|
||
|
|
return in_object_list_;
|
||
|
|
}
|
||
|
|
|
||
|
|
void TransformerOutObjects(const std::vector<std::string>& list) {
|
||
|
|
out_object_list_ = list;
|
||
|
|
}
|
||
|
|
[[nodiscard]] const std::vector<std::string>& TransformerOutObjects() const {
|
||
|
|
return out_object_list_;
|
||
|
|
}
|
||
|
|
|
||
|
|
private:
|
||
|
|
std::string version_;
|
||
|
|
std::string executable32_;
|
||
|
|
std::string executable64_;
|
||
|
|
uint64_t timeout_ = 0;
|
||
|
|
A2lTrigger trigger_ = A2lTrigger::UNKNOWN;
|
||
|
|
std::string inverse_transformer_;
|
||
|
|
std::vector<std::string> in_object_list_;
|
||
|
|
std::vector<std::string> out_object_list_;
|
||
|
|
};
|
||
|
|
|
||
|
|
using TransformerList = std::map<std::string, std::unique_ptr<Transformer>>;
|
||
|
|
|
||
|
|
} // end namespace a2l
|