1 #ifndef OPCUABRIDGE_METADATAFILE_H_ 2 #define OPCUABRIDGE_METADATAFILE_H_ 11 typedef BinaryDataType block_type;
16 const int& getGUID()
const {
return GUID_; }
17 void setGUID(
const int& GUID) { GUID_ = GUID; }
18 const std::size_t& getFileNumber()
const {
return fileNumber_; }
19 void setFileNumber(
const std::size_t& fileNumber) { fileNumber_ = fileNumber; }
20 const std::string& getFilename()
const {
return filename_; }
21 void setFilename(
const std::string& filename) { filename_ = filename; }
22 block_type& getMetadata() {
return metadata_; }
23 const block_type& getMetadata()
const {
return metadata_; }
24 void setMetadata(
const block_type& metadata) { metadata_ = metadata; }
25 void setMetadata(
const Json::Value& metadata) {
27 std::string s = fw.write(metadata);
28 metadata_.assign(s.begin(), s.end());
30 INITSERVERNODESET_BIN_FUNCTION_DEFINITION(
MetadataFile, &metadata_)
31 CLIENTREAD_BIN_FUNCTION_DEFINITION(&metadata_)
32 CLIENTWRITE_BIN_FUNCTION_DEFINITION(&metadata_)
34 void setOnBeforeReadCallback(MessageOnBeforeReadCallback<MetadataFile>::type cb) {
35 on_before_read_cb_ = std::move(cb);
37 void setOnAfterWriteCallback(MessageOnAfterWriteCallback<MetadataFile>::type cb) {
38 on_after_write_cb_ = std::move(cb);
43 std::size_t fileNumber_{};
44 std::string filename_;
47 MessageOnBeforeReadCallback<MetadataFile>::type on_before_read_cb_;
48 MessageOnAfterWriteCallback<MetadataFile>::type on_after_write_cb_;
51 static const char* node_id_;
52 static const char* bin_node_id_;
54 Json::Value wrapMessage()
const {
56 v[
"GUID"] = getGUID();
57 v[
"fileNumber"] =
static_cast<Json::Value::UInt
>(getFileNumber());
58 v[
"filename"] = getFilename();
61 void unwrapMessage(Json::Value v) {
62 setGUID(v[
"GUID"].asInt());
63 setFileNumber(v[
"fileNumber"].asUInt());
64 setFilename(v[
"filename"].asString());
73 #ifdef OPCUABRIDGE_ENABLE_SERIALIZATION 74 SERIALIZE_FUNCTION_FRIEND_DECLARATION
76 DEFINE_SERIALIZE_METHOD() {
77 SERIALIZE_FIELD(ar,
"GUID_", GUID_);
78 SERIALIZE_FIELD(ar,
"fileNumber_", fileNumber_);
79 SERIALIZE_FIELD(ar,
"filename_", filename_);
80 SERIALIZE_FIELD(ar,
"metadata_", metadata_);
82 #endif // OPCUABRIDGE_ENABLE_SERIALIZATION 86 #endif // OPCUABRIDGE_METADATAFILE_H_