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 21 namespace Hdc { 22 namespace 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::u_id>("u_id"), 61 Field<fieldThree, &Hdc::HdcTransferBase::FileMode::g_id>("g_id"), 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