xref: /developtools/hdc/src/common/serial_struct.h (revision cc290419)
1/*
2 * Copyright (C) 2021 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#ifndef HDC_SERIAL_STRUCT_H
16#define HDC_SERIAL_STRUCT_H
17#include "common.h"
18#include "serial_struct_define.h"
19#include "transfer.h"
20
21namespace Hdc {
22namespace SerialStruct {
23    constexpr int fieldOne = 1;
24    constexpr int fieldTwo = 2;
25    constexpr int fieldThree = 3;
26    constexpr int fieldFour = 4;
27    constexpr int fieldFive = 5;
28    constexpr int fieldSix = 6;
29    constexpr int fieldSeven = 7;
30    constexpr int fieldEight = 8;
31    constexpr int fieldNine = 9;
32    constexpr int fieldTen = 10;
33    constexpr int field11 = 11;
34    constexpr int field12 = 12;
35    constexpr int field13 = 13;
36
37    template<> struct Descriptor<Hdc::HdcTransferBase::TransferConfig> {
38        static auto type()
39        {
40            return Message(Field<fieldOne, &Hdc::HdcTransferBase::TransferConfig::fileSize>("fileSize"),
41                           Field<fieldTwo, &Hdc::HdcTransferBase::TransferConfig::atime>("atime"),
42                           Field<fieldThree, &Hdc::HdcTransferBase::TransferConfig::mtime>("mtime"),
43                           Field<fieldFour, &Hdc::HdcTransferBase::TransferConfig::options>("options"),
44                           Field<fieldFive, &Hdc::HdcTransferBase::TransferConfig::path>("path"),
45                           Field<fieldSix, &Hdc::HdcTransferBase::TransferConfig::optionalName>("optionalName"),
46                           Field<fieldSeven, &Hdc::HdcTransferBase::TransferConfig::updateIfNew>("updateIfNew"),
47                           Field<fieldEight, &Hdc::HdcTransferBase::TransferConfig::compressType>("compressType"),
48                           Field<fieldNine, &Hdc::HdcTransferBase::TransferConfig::holdTimestamp>("holdTimestamp"),
49                           Field<fieldTen, &Hdc::HdcTransferBase::TransferConfig::functionName>("functionName"),
50                           Field<field11, &Hdc::HdcTransferBase::TransferConfig::clientCwd>("clientCwd"),
51                           Field<field12, &Hdc::HdcTransferBase::TransferConfig::reserve1>("reserve1"),
52                           Field<field13, &Hdc::HdcTransferBase::TransferConfig::reserve2>("reserve2"));
53        }
54    };
55
56    template<> struct Descriptor<Hdc::HdcTransferBase::FileMode> {
57        static auto type()
58        {
59            return Message(Field<fieldOne, &Hdc::HdcTransferBase::FileMode::perm>("perm"),
60                           Field<fieldTwo, &Hdc::HdcTransferBase::FileMode::uId>("uId"),
61                           Field<fieldThree, &Hdc::HdcTransferBase::FileMode::gId>("gId"),
62                           Field<fieldFour, &Hdc::HdcTransferBase::FileMode::context>("context"),
63                           Field<fieldFive, &Hdc::HdcTransferBase::FileMode::fullName>("fullName"));
64        }
65    };
66
67    template<> struct Descriptor<Hdc::HdcTransferBase::TransferPayload> {
68        static auto type()
69        {
70            return Message(Field<fieldOne, &Hdc::HdcTransferBase::TransferPayload::index>("index"),
71                           Field<fieldTwo, &Hdc::HdcTransferBase::TransferPayload::compressType>("compressType"),
72                           Field<fieldThree, &Hdc::HdcTransferBase::TransferPayload::compressSize>("compressSize"),
73                           Field<fieldFour, &Hdc::HdcTransferBase::TransferPayload::uncompressSize>("uncompressSize"));
74        }
75    };
76
77    template<> struct Descriptor<Hdc::HdcSessionBase::SessionHandShake> {
78        static auto type()
79        {
80            return Message(Field<fieldOne, &Hdc::HdcSessionBase::SessionHandShake::banner>("banner"),
81                           Field<fieldTwo, &Hdc::HdcSessionBase::SessionHandShake::authType>("authType"),
82                           Field<fieldThree, &Hdc::HdcSessionBase::SessionHandShake::sessionId>("sessionId"),
83                           Field<fieldFour, &Hdc::HdcSessionBase::SessionHandShake::connectKey>("connectKey"),
84                           Field<fieldFive, &Hdc::HdcSessionBase::SessionHandShake::buf>("buf"),
85                           Field<fieldSix, &Hdc::HdcSessionBase::SessionHandShake::version>("version"));
86        }
87    };
88
89    template<> struct Descriptor<Hdc::HdcSessionBase::PayloadProtect> {
90        static auto type()
91        {
92            return Message(Field<fieldOne, &Hdc::HdcSessionBase::PayloadProtect::channelId>("channelId"),
93                           Field<fieldTwo, &Hdc::HdcSessionBase::PayloadProtect::commandFlag>("commandFlag"),
94                           Field<fieldThree, &Hdc::HdcSessionBase::PayloadProtect::checkSum>("checkSum"),
95                           Field<fieldFour, &Hdc::HdcSessionBase::PayloadProtect::vCode>("vCode"));
96        }
97    };
98}  // SerialStruct
99}  // Hdc
100#endif  // HDC_SERIAL_STRUCT_H
101