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 #ifndef LOCATION_LOCATING_REQUIRED_DATA_CONFIG_H 17 #define LOCATION_LOCATING_REQUIRED_DATA_CONFIG_H 18 19 #include <parcel.h> 20 #include <string> 21 22 namespace OHOS { 23 namespace Location { 24 class LocatingRequiredDataConfig : public Parcelable { 25 public: LocatingRequiredDataConfig()26 LocatingRequiredDataConfig() 27 { 28 type_ = 0; 29 needStartScan_ = false; 30 scanIntervalMs_ = 0; 31 scanTimeoutMs_ = DEFAULT_TIMEOUT_30S; 32 fixNumber_ = 0; 33 } 34 LocatingRequiredDataConfig(LocatingRequiredDataConfig & LocatingRequiredDataConfig)35 explicit LocatingRequiredDataConfig(LocatingRequiredDataConfig& LocatingRequiredDataConfig) 36 { 37 SetType(LocatingRequiredDataConfig.GetType()); 38 SetNeedStartScan(LocatingRequiredDataConfig.GetNeedStartScan()); 39 SetScanIntervalMs(LocatingRequiredDataConfig.GetScanIntervalMs()); 40 SetScanTimeoutMs(LocatingRequiredDataConfig.GetScanTimeoutMs()); 41 } 42 43 ~LocatingRequiredDataConfig() override = default; 44 GetType()45 inline int GetType() const 46 { 47 return type_; 48 } 49 SetType(int type)50 inline void SetType(int type) 51 { 52 type_ = type; 53 } 54 GetNeedStartScan()55 inline bool GetNeedStartScan() const 56 { 57 return needStartScan_; 58 } 59 SetNeedStartScan(bool needStartScan)60 inline void SetNeedStartScan(bool needStartScan) 61 { 62 needStartScan_ = needStartScan; 63 } 64 GetScanIntervalMs()65 inline int GetScanIntervalMs() const 66 { 67 return scanIntervalMs_; 68 } 69 SetScanIntervalMs(int scanIntervalMs)70 inline void SetScanIntervalMs(int scanIntervalMs) 71 { 72 scanIntervalMs_ = scanIntervalMs; 73 } 74 GetScanTimeoutMs()75 inline int GetScanTimeoutMs() const 76 { 77 return scanTimeoutMs_; 78 } 79 SetScanTimeoutMs(int scanTimeoutMs)80 inline void SetScanTimeoutMs(int scanTimeoutMs) 81 { 82 scanTimeoutMs_ = scanTimeoutMs; 83 } 84 GetFixNumber()85 inline int GetFixNumber() const 86 { 87 return fixNumber_; 88 } 89 SetFixNumber(int fixNumber)90 inline void SetFixNumber(int fixNumber) 91 { 92 fixNumber_ = fixNumber; 93 } 94 ReadFromParcel(Parcel & parcel)95 void ReadFromParcel(Parcel& parcel) 96 { 97 type_ = parcel.ReadInt32(); 98 needStartScan_ = parcel.ReadBool(); 99 scanIntervalMs_ = parcel.ReadInt32(); 100 scanTimeoutMs_ = parcel.ReadInt32(); 101 fixNumber_ = parcel.ReadInt32(); 102 } 103 Marshalling(Parcel & parcel)104 bool Marshalling(Parcel& parcel) const override 105 { 106 return parcel.WriteInt32(type_) && 107 parcel.WriteBool(needStartScan_) && 108 parcel.WriteInt32(scanIntervalMs_) && 109 parcel.WriteInt32(scanTimeoutMs_) && 110 parcel.WriteInt32(fixNumber_); 111 } 112 Unmarshalling(Parcel & parcel)113 static std::shared_ptr<LocatingRequiredDataConfig> Unmarshalling(Parcel& parcel) 114 { 115 auto locatingRequiredDataConfig = std::make_shared<LocatingRequiredDataConfig>(); 116 locatingRequiredDataConfig->ReadFromParcel(parcel); 117 return locatingRequiredDataConfig; 118 } 119 ToString()120 std::string ToString() 121 { 122 std::string str = "type_ : " + std::to_string(type_) + 123 ", needStartScan_ : " + (needStartScan_ ? "true" : "false") + 124 ", scanIntervalMs_ : " + std::to_string(scanIntervalMs_) + 125 ", scanTimeoutMs_ : " + std::to_string(scanTimeoutMs_) + 126 ", fixNumber : " + std::to_string(fixNumber_); 127 return str; 128 } 129 130 private: 131 int type_; 132 bool needStartScan_; 133 int scanIntervalMs_; 134 int scanTimeoutMs_; 135 int fixNumber_; 136 }; 137 } // namespace Location 138 } // namespace OHOS 139 #endif // LOCATION_LOCATING_REQUIRED_DATA_CONFIG_H