1d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum/*
2d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * Copyright (C) 2017 The Android Open Source Project
3d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum *
4d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * Licensed under the Apache License, Version 2.0 (the "License");
5d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * you may not use this file except in compliance with the License.
6d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * You may obtain a copy of the License at
7d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum *
8d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum *      http://www.apache.org/licenses/LICENSE-2.0
9d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum *
10d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * Unless required by applicable law or agreed to in writing, software
11d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * distributed under the License is distributed on an "AS IS" BASIS,
12d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * See the License for the specific language governing permissions and
14d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * limitations under the License.
15d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum */
16d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
17d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum#ifndef ANDROID_LOWPAN_PROVISION_H
18d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum#define ANDROID_LOWPAN_PROVISION_H
19d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
20d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum#include <binder/Parcelable.h>
21d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum#include <utils/String16.h>
22d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum#include <utils/StrongPointer.h>
23d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
24d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum#include "LowpanIdentity.h"
25d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum#include "LowpanCredential.h"
26d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
27d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaumnamespace android {
28d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
29d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaumnamespace net {
30d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
31d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaumnamespace lowpan {
32d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
33d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum/*
34d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum * C++ implementation of the Java class android.net.lowpan.LowpanProvision
35d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum */
36d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaumclass LowpanProvision : public Parcelable {
37d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaumpublic:
38d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    LowpanProvision() = default;
39d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    virtual ~LowpanProvision() = default;
40d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    LowpanProvision(const LowpanProvision& x) = default;
41d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
42d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    bool operator==(const LowpanProvision& rhs);
43d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    bool operator!=(const LowpanProvision& rhs) { return !(*this == rhs); }
44d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
45d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    LowpanProvision(const LowpanIdentity& identity, const LowpanCredential& credential);
46d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    LowpanProvision(const LowpanIdentity& identity);
47d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
48d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    const LowpanIdentity* getLowpanIdentity() const;
49d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    const LowpanCredential* getLowpanCredential() const;
50d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
51d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaumpublic:
52d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    // Overrides
53d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    status_t writeToParcel(Parcel* parcel) const override;
54d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    status_t readFromParcel(const Parcel* parcel) override;
55d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
56d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaumprivate:
57d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    // Data
58d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    LowpanIdentity mIdentity;
59d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    LowpanCredential mCredential;
60d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum    bool mHasCredential;
61d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum};
62d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
63d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum}  // namespace lowpan
64d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
65d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum}  // namespace net
66d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
67d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum}  // namespace android
68d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum
69d38415634a6e0d2175e888618a6ebc52dfcb861eRobert Quattlebaum#endif  // ANDROID_LOWPAN_PROVISION_H
70