//
// Copyright (C) 2015 Google, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at:
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#pragma once
#include <memory>
#include <binder/Parcel.h>
#include <bluetooth/advertise_data.h>
#include <bluetooth/advertise_settings.h>
#include <bluetooth/gatt_identifier.h>
#include <bluetooth/scan_filter.h>
#include <bluetooth/scan_result.h>
#include <bluetooth/scan_settings.h>
#include <bluetooth/uuid.h>
namespace ipc {
namespace binder {
// Java Parcel meta-data constants.
const int kParcelValList = 11;
// Helpers for converting bluetooth::AdvertiseData to/from Parcel
void WriteAdvertiseDataToParcel(
const bluetooth::AdvertiseData& data,
android::Parcel* parcel);
std::unique_ptr<bluetooth::AdvertiseData> CreateAdvertiseDataFromParcel(
const android::Parcel& parcel);
// Helpers for converting bluetooth::AdvertiseSettings to/from Parcel
void WriteAdvertiseSettingsToParcel(
const bluetooth::AdvertiseSettings& settings,
android::Parcel* parcel);
std::unique_ptr<bluetooth::AdvertiseSettings> CreateAdvertiseSettingsFromParcel(
const android::Parcel& parcel);
// Helpers for converting bluetooth::UUID to/from Parcel
void WriteUUIDToParcel(const bluetooth::UUID& uuid, android::Parcel* parcel);
std::unique_ptr<bluetooth::UUID> CreateUUIDFromParcel(
const android::Parcel& parcel);
// Helpers for converting bluetooth::GattIdentifier to/from Parcel
void WriteGattIdentifierToParcel(
const bluetooth::GattIdentifier& gatt_id,
android::Parcel* parcel);
std::unique_ptr<bluetooth::GattIdentifier> CreateGattIdentifierFromParcel(
const android::Parcel& parcel);
// Helpers for converting bluetooth::ScanFilter to/from Parcel
void WriteScanFilterToParcel(
const bluetooth::ScanFilter& filter,
android::Parcel* parcel);
std::unique_ptr<bluetooth::ScanFilter> CreateScanFilterFromParcel(
const android::Parcel& parcel);
// Helpers for converting bluetooth::ScanSettings to/from Parcel
void WriteScanSettingsToParcel(
const bluetooth::ScanSettings& settings,
android::Parcel* parcel);
std::unique_ptr<bluetooth::ScanSettings> CreateScanSettingsFromParcel(
const android::Parcel& parcel);
// Helpers for converting bluetooth::ScanResult to/from Parcel
void WriteScanResultToParcel(
const bluetooth::ScanResult& scan_result,
android::Parcel* parcel);
std::unique_ptr<bluetooth::ScanResult> CreateScanResultFromParcel(
const android::Parcel& parcel);
} // namespace binder
} // namespace ipc