1/*
2 * Copyright (c) 2023-2024 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 OHOS_DP_DEVICE_PROFILE_H
17#define OHOS_DP_DEVICE_PROFILE_H
18
19#include <cstdint>
20#include <string>
21#include "dp_parcel.h"
22
23namespace OHOS {
24namespace DistributedDeviceProfile {
25class DeviceProfile : public DpParcel {
26public:
27    DeviceProfile()
28        : deviceId_(""),
29        deviceTypeName_(""),
30        deviceTypeId_(0),
31        deviceName_(""),
32        manufactureName_(""),
33        deviceModel_(""),
34        storageCapability_(0),
35        osSysCap_(""),
36        osApiLevel_(0),
37        osVersion_(""),
38        osType_(0)
39    {}
40    ~DeviceProfile() = default;
41
42    std::string GetDeviceId() const;
43    void SetDeviceId(const std::string& deviceId);
44    std::string GetDeviceTypeName() const;
45    void SetDeviceTypeName(const std::string& deviceTypeName);
46    int32_t GetDeviceTypeId() const;
47    void SetDeviceTypeId(int32_t deviceTypeId);
48    std::string GetDeviceName() const;
49    void SetDeviceName(const std::string& deviceName);
50    std::string GetManufactureName() const;
51    void SetManufactureName(std::string manufactureName);
52    std::string GetDeviceModel() const;
53    void SetDeviceModel(const std::string& deviceModel);
54    int64_t GetStorageCapability() const;
55    void SetStorageCapability(int64_t storageCapability);
56    std::string GetOsSysCap() const;
57    void SetOsSysCap(const std::string& osSysCap);
58    int32_t GetOsApiLevel() const;
59    void SetOsApiLevel(int32_t osApiLevel);
60    std::string GetOsVersion() const;
61    void SetOsVersion(const std::string& osVersion);
62    int32_t GetOsType() const;
63    void SetOsType(int32_t osType);
64    bool Marshalling(MessageParcel& parcel) const override;
65    bool UnMarshalling(MessageParcel& parcel) override;
66    bool operator!=(const DeviceProfile& deviceProfile) const;
67    std::string dump() const override;
68    std::string AnnoymizeDump() const;
69
70private:
71    std::string deviceId_;
72    std::string deviceTypeName_;
73    int32_t deviceTypeId_;
74    std::string deviceName_;
75    std::string manufactureName_;
76    std::string deviceModel_;
77    int64_t storageCapability_;
78    std::string osSysCap_;
79    int32_t osApiLevel_;
80    std::string osVersion_;
81    int32_t osType_;
82};
83} // namespace DistributedDeviceProfile
84} // namespace OHOS
85#endif //OHOS_DP_DEVICE_PROFILE_H
86