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