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

Commit 307de677 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "L2cap dynamic channel and service"

parents 924497b1 c5f55c61
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -11,8 +11,10 @@ filegroup {
        "classic_fixed_channel_service.cc",
        "internal/classic_dynamic_channel_allocator.cc",
        "internal/classic_dynamic_channel_impl.cc",
        "internal/classic_dynamic_channel_service_manager_impl.cc",
        "internal/classic_fixed_channel_impl.cc",
        "internal/classic_fixed_channel_service_manager_impl.cc",
        "internal/classic_link.cc",
        "internal/classic_link_manager.cc",
        "internal/le_fixed_channel_impl.cc",
        "internal/le_fixed_channel_service_manager_impl.cc",
@@ -30,6 +32,7 @@ filegroup {
        "l2cap_packet_test.cc",
        "internal/classic_dynamic_channel_allocator_test.cc",
        "internal/classic_dynamic_channel_impl_test.cc",
        "internal/classic_dynamic_channel_service_manager_test.cc",
        "internal/classic_fixed_channel_impl_test.cc",
        "internal/classic_fixed_channel_service_manager_test.cc",
        "internal/classic_link_manager_test.cc",
+12 −0
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ service L2capModuleCert {
  rpc SendL2capPacket(L2capPacket) returns (google.protobuf.Empty) {}
  rpc FetchL2capData(facade.EventStreamRequest) returns (stream L2capPacket) {}
  rpc FetchConnectionComplete(facade.EventStreamRequest) returns (stream ConnectionCompleteEvent) {}
  rpc DisconnectLink(DisconnectLinkRequest) returns (google.protobuf.Empty) {}
  rpc SendConnectionRequest(ConnectionRequest) returns (google.protobuf.Empty) {}
}

message L2capPacket {
@@ -20,3 +22,13 @@ message L2capPacket {
message ConnectionCompleteEvent {
  facade.BluetoothAddress remote = 1;
}

message DisconnectLinkRequest {
  facade.BluetoothAddress remote = 1;
}

message ConnectionRequest {
  facade.BluetoothAddress remote = 1;
  uint32 dcid = 2;
  uint32 scid = 3;
}
+10 −4
Original line number Diff line number Diff line
@@ -16,22 +16,28 @@

#include "l2cap/classic_dynamic_channel.h"
#include "common/bind.h"
#include "l2cap/internal/classic_dynamic_channel_impl.h"

namespace bluetooth {
namespace l2cap {

hci::Address ClassicDynamicChannel::GetDevice() const {
  return {};
  return impl_->GetDevice();
}

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

void ClassicDynamicChannel::Close() {}
void ClassicDynamicChannel::Close() {
  l2cap_handler_->Post(common::BindOnce(&internal::ClassicDynamicChannelImpl::Close, impl_));
}

common::BidiQueueEnd<packet::BasePacketBuilder, packet::PacketView<packet::kLittleEndian>>*
ClassicDynamicChannel::GetQueueUpEnd() const {
  return nullptr;
  return impl_->GetQueueUpEnd();
}
}  // namespace l2cap
}  // namespace bluetooth
 No newline at end of file
+11 −1
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */

#include "l2cap/classic_dynamic_channel_manager.h"
#include "l2cap/internal/classic_dynamic_channel_service_impl.h"
#include "l2cap/internal/classic_dynamic_channel_service_manager_impl.h"
#include "l2cap/internal/classic_link_manager.h"

namespace bluetooth {
@@ -30,7 +32,15 @@ bool ClassicDynamicChannelManager::ConnectChannel(hci::Address device, Psm psm,
bool ClassicDynamicChannelManager::RegisterService(Psm psm, const SecurityPolicy& security_policy,
                                                   OnRegistrationCompleteCallback on_registration_complete,
                                                   OnConnectionOpenCallback on_connection_open, os::Handler* handler) {
  return false;
  internal::ClassicDynamicChannelServiceImpl::PendingRegistration pending_registration{
      .user_handler_ = handler,
      .on_registration_complete_callback_ = std::move(on_registration_complete),
      .on_connection_open_callback_ = std::move(on_connection_open)};
  l2cap_layer_handler_->Post(common::BindOnce(&internal::ClassicDynamicChannelServiceManagerImpl::Register,
                                              common::Unretained(service_manager_), psm,
                                              std::move(pending_registration)));

  return true;
}

}  // namespace l2cap
+7 −1
Original line number Diff line number Diff line
@@ -16,12 +16,18 @@

#include "l2cap/classic_dynamic_channel_service.h"
#include "common/bind.h"
#include "l2cap/internal/classic_dynamic_channel_service_manager_impl.h"

namespace bluetooth {
namespace l2cap {

void ClassicDynamicChannelService::Unregister(OnUnregisteredCallback on_unregistered,
                                              os::Handler* on_unregistered_handler) {}
                                              os::Handler* on_unregistered_handler) {
  ASSERT_LOG(manager_ != nullptr, "this service is invalid");
  l2cap_layer_handler_->Post(common::BindOnce(&internal::ClassicDynamicChannelServiceManagerImpl::Unregister,
                                              common::Unretained(manager_), psm_, std::move(on_unregistered),
                                              on_unregistered_handler));
}

}  // namespace l2cap
}  // namespace bluetooth
Loading