1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "metadata/matrix_meta_data.h"
17 #include "utils/constant.h"
18 namespace OHOS::DistributedData {
Marshal(json & node) const19 bool MatrixMetaData::Marshal(json &node) const
20 {
21     SetValue(node[GET_NAME(version)], version);
22     SetValue(node[GET_NAME(dynamic)], dynamic);
23     SetValue(node[GET_NAME(statics)], statics);
24     SetValue(node[GET_NAME(deviceId)], deviceId);
25     SetValue(node[GET_NAME(dynamicInfo)], dynamicInfo);
26     SetValue(node[GET_NAME(staticsInfo)], staticsInfo);
27     SetValue(node[GET_NAME(origin)], origin);
28     return true;
29 }
30 
Unmarshal(const json & node)31 bool MatrixMetaData::Unmarshal(const json &node)
32 {
33     GetValue(node, GET_NAME(version), version);
34     GetValue(node, GET_NAME(dynamic), dynamic);
35     GetValue(node, GET_NAME(statics), statics);
36     GetValue(node, GET_NAME(deviceId), deviceId);
37     GetValue(node, GET_NAME(dynamicInfo), dynamicInfo);
38     GetValue(node, GET_NAME(staticsInfo), staticsInfo);
39     GetValue(node, GET_NAME(origin), origin);
40     return true;
41 }
42 
GetKey() const43 std::string MatrixMetaData::GetKey() const
44 {
45     return Constant::Join(KEY_PREFIX, Constant::KEY_SEPARATOR, { deviceId });
46 }
47 
GetConsistentKey() const48 std::string MatrixMetaData::GetConsistentKey() const
49 {
50     return Constant::Join(KEY_PREFIX, Constant::KEY_SEPARATOR, { deviceId, RMOTE_CONSISTENT });
51 }
52 
GetPrefix(const std::initializer_list<std::string> & fields)53 std::string MatrixMetaData::GetPrefix(const std::initializer_list<std::string> &fields)
54 {
55     return Constant::Join(KEY_PREFIX, Constant::KEY_SEPARATOR, fields);
56 }
57 
operator ==(const MatrixMetaData & meta) const58 bool MatrixMetaData::operator==(const MatrixMetaData &meta) const
59 {
60     return (dynamic == meta.dynamic) && (statics == meta.statics) &&
61         (deviceId == meta.deviceId) && (origin == meta.origin);
62 }
63 
operator !=(const MatrixMetaData & meta) const64 bool MatrixMetaData::operator!=(const MatrixMetaData &meta) const
65 {
66     return !(*this == meta);
67 }
68 } // namespace OHOS::DistributedData