Loading system/gd/l2cap/Android.bp +4 −1 Original line number Diff line number Diff line Loading @@ -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", Loading @@ -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", Loading system/gd/l2cap/cert/api.proto +12 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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; } system/gd/l2cap/classic_dynamic_channel.cc +10 −4 Original line number Diff line number Diff line Loading @@ -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 system/gd/l2cap/classic_dynamic_channel_manager.cc +11 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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 Loading system/gd/l2cap/classic_dynamic_channel_service.cc +7 −1 Original line number Diff line number Diff line Loading @@ -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
system/gd/l2cap/Android.bp +4 −1 Original line number Diff line number Diff line Loading @@ -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", Loading @@ -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", Loading
system/gd/l2cap/cert/api.proto +12 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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; }
system/gd/l2cap/classic_dynamic_channel.cc +10 −4 Original line number Diff line number Diff line Loading @@ -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
system/gd/l2cap/classic_dynamic_channel_manager.cc +11 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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 Loading
system/gd/l2cap/classic_dynamic_channel_service.cc +7 −1 Original line number Diff line number Diff line Loading @@ -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