chromium/device/bluetooth/floss/floss_advertiser_client.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef DEVICE_BLUETOOTH_FLOSS_FLOSS_ADVERTISER_CLIENT_H_
#define DEVICE_BLUETOOTH_FLOSS_FLOSS_ADVERTISER_CLIENT_H_

#include <memory>
#include <string>

#include "base/memory/weak_ptr.h"
#include "device/bluetooth/bluetooth_advertisement.h"
#include "device/bluetooth/floss/exported_callback_manager.h"
#include "device/bluetooth/floss/floss_dbus_client.h"
#include "device/bluetooth/floss/floss_gatt_manager_client.h"
#include "device/bluetooth/public/cpp/bluetooth_uuid.h"

namespace floss {

constexpr char kAdvertisingSetCallbackPath[] ="/org/chromium/bluetooth/advertising_set/callback/lacros";
#else
    "/org/chromium/bluetooth/advertising_set/callback";
#endif

// Represents type of address to advertise.
enum class OwnAddressType {};

// Represents the parameters of an advertising set. Supports Floss API version
// 0.4.0 or earlier.
struct AdvertisingSetParametersOld {};

// Represents the parameters of an advertising set. Supports Floss API versions
// greater than 0.4.0.
struct AdvertisingSetParameters {};

// Represents the data to be advertised.
struct DEVICE_BLUETOOTH_EXPORT AdvertiseData {};

// Represents parameters of the periodic advertising packet.
struct PeriodicAdvertisingParameters {};

// Status of advertising callbacks.
enum class AdvertisingStatus {};

class FlossAdvertiserClientObserver : public base::CheckedObserver {};

// FlossAdvertiserClient is a D-Bus client that talks to Floss daemon to
// perform BLE advertise operations, such as BLE advertising sets creation,
// parameters and data configuration, information query.
// It is managed by FlossClientBundle and will be initialized with an adapter
// when one is powered on.
class DEVICE_BLUETOOTH_EXPORT FlossAdvertiserClient
    : public FlossDBusClient,
      public FlossAdvertiserClientObserver {};

}  // namespace floss

#endif  // DEVICE_BLUETOOTH_FLOSS_FLOSS_ADVERTISER_CLIENT_H_