Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b7081de authored by Hansong Zhang's avatar Hansong Zhang
Browse files

Move DynamicChannel and Allocator to L2CAP internal common

Since we moved channel data pipeline logic to DataController,
DynamicChannelImpl is same for classic and LE.

Bug: 144503952
Test: run_cert.sh
Change-Id: Ie573ae04092e9a475a02cd6f078f03bdd84e0df6
parent e5dd0e92
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -8,8 +8,6 @@ filegroup {
        "classic/fixed_channel.cc",
        "classic/fixed_channel_manager.cc",
        "classic/fixed_channel_service.cc",
        "classic/internal/dynamic_channel_allocator.cc",
        "classic/internal/dynamic_channel_impl.cc",
        "classic/internal/dynamic_channel_service_manager_impl.cc",
        "classic/internal/fixed_channel_impl.cc",
        "classic/internal/fixed_channel_service_manager_impl.cc",
@@ -19,6 +17,8 @@ filegroup {
        "classic/l2cap_classic_module.cc",
        "internal/basic_mode_channel_data_controller.cc",
        "internal/data_pipeline_manager.cc",
        "internal/dynamic_channel_allocator.cc",
        "internal/dynamic_channel_impl.cc",
        "internal/enhanced_retransmission_mode_channel_data_controller.cc",
        "internal/le_credit_based_channel_data_controller.cc",
        "internal/receiver.cc",
@@ -37,14 +37,14 @@ filegroup {
filegroup {
    name: "BluetoothL2capTestSources",
    srcs: [
        "classic/internal/dynamic_channel_allocator_test.cc",
        "classic/internal/dynamic_channel_impl_test.cc",
        "classic/internal/dynamic_channel_service_manager_test.cc",
        "classic/internal/fixed_channel_impl_test.cc",
        "classic/internal/fixed_channel_service_manager_test.cc",
        "classic/internal/link_manager_test.cc",
        "classic/internal/signalling_manager_test.cc",
        "internal/basic_mode_channel_data_controller_test.cc",
        "internal/dynamic_channel_allocator_test.cc",
        "internal/dynamic_channel_impl_test.cc",
        "internal/enhanced_retransmission_mode_channel_data_controller_test.cc",
        "internal/fixed_channel_allocator_test.cc",
        "internal/le_credit_based_channel_data_controller_test.cc",
@@ -76,7 +76,7 @@ filegroup {
filegroup {
    name: "BluetoothL2capFuzzTestSources",
    srcs: [
        "classic/internal/dynamic_channel_allocator_fuzz_test.cc",
        "internal/dynamic_channel_allocator_fuzz_test.cc",
        "l2cap_packet_fuzz_test.cc",
    ],
}
+4 −4
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

#include "l2cap/classic/dynamic_channel.h"
#include "common/bind.h"
#include "l2cap/classic/internal/dynamic_channel_impl.h"
#include "l2cap/internal/dynamic_channel_impl.h"

namespace bluetooth {
namespace l2cap {
@@ -28,12 +28,12 @@ hci::Address DynamicChannel::GetDevice() const {

void DynamicChannel::RegisterOnCloseCallback(os::Handler* user_handler,
                                             DynamicChannel::OnCloseCallback on_close_callback) {
  l2cap_handler_->Post(common::BindOnce(&internal::DynamicChannelImpl::RegisterOnCloseCallback, impl_, user_handler,
                                        std::move(on_close_callback)));
  l2cap_handler_->Post(common::BindOnce(&l2cap::internal::DynamicChannelImpl::RegisterOnCloseCallback, impl_,
                                        user_handler, std::move(on_close_callback)));
}

void DynamicChannel::Close() {
  l2cap_handler_->Post(common::BindOnce(&internal::DynamicChannelImpl::Close, impl_));
  l2cap_handler_->Post(common::BindOnce(&l2cap::internal::DynamicChannelImpl::Close, impl_));
}

common::BidiQueueEnd<packet::BasePacketBuilder, packet::PacketView<packet::kLittleEndian>>*
+4 −3
Original line number Diff line number Diff line
@@ -24,12 +24,13 @@

namespace bluetooth {
namespace l2cap {
namespace classic {

namespace internal {
class DynamicChannelImpl;
}  // namespace internal

namespace classic {

/**
 * L2CAP Dynamic channel object. User needs to call Close() when user no longer wants to use it. Otherwise the link
 * won't be disconnected.
@@ -37,7 +38,7 @@ class DynamicChannelImpl;
class DynamicChannel {
 public:
  // Should only be constructed by modules that have access to LinkManager
  DynamicChannel(std::shared_ptr<internal::DynamicChannelImpl> impl, os::Handler* l2cap_handler)
  DynamicChannel(std::shared_ptr<l2cap::internal::DynamicChannelImpl> impl, os::Handler* l2cap_handler)
      : impl_(std::move(impl)), l2cap_handler_(l2cap_handler) {
    ASSERT(impl_ != nullptr);
    ASSERT(l2cap_handler_ != nullptr);
@@ -72,7 +73,7 @@ class DynamicChannel {
  common::BidiQueueEnd<packet::BasePacketBuilder, packet::PacketView<packet::kLittleEndian>>* GetQueueUpEnd() const;

 private:
  std::shared_ptr<internal::DynamicChannelImpl> impl_;
  std::shared_ptr<l2cap::internal::DynamicChannelImpl> impl_;
  os::Handler* l2cap_handler_;
};

+1 −1
Original line number Diff line number Diff line
@@ -15,8 +15,8 @@
 */
#pragma once

#include "l2cap/classic/internal/dynamic_channel_impl.h"
#include "l2cap/classic/internal/dynamic_channel_service_manager_impl.h"
#include "l2cap/internal/dynamic_channel_impl.h"

#include <gmock/gmock.h>

+2 −2
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ class FixedChannelImpl : public l2cap::internal::ChannelImpl {
  virtual ~FixedChannelImpl() = default;

  hci::Address GetDevice() const {
    return device_;
    return device_.GetAddress();
  }

  virtual void RegisterOnCloseCallback(os::Handler* user_handler, FixedChannel::OnCloseCallback on_close_callback);
@@ -80,7 +80,7 @@ class FixedChannelImpl : public l2cap::internal::ChannelImpl {
  // For logging purpose only
  const Cid cid_;
  // For logging purpose only
  const hci::Address device_;
  const hci::AddressWithType device_;
  // Needed to handle Acquire() and Release()
  Link* link_;
  os::Handler* l2cap_handler_;
Loading