L2CAP: Move DynamicChannel API to common
DynamicChannel API is same for both classic and LE
Bug: 144503952
Test: bluetooth_test_gd and run_cert.sh
Change-Id: Ie29ff5a1834d13f2e684f70d9b1333002f5bfc43
diff --git a/gd/l2cap/Android.bp b/gd/l2cap/Android.bp
index 90accd9..0bdfbd2 100644
--- a/gd/l2cap/Android.bp
+++ b/gd/l2cap/Android.bp
@@ -2,7 +2,6 @@
name: "BluetoothL2capSources",
srcs: [
"fcs.cc",
- "classic/dynamic_channel.cc",
"classic/dynamic_channel_manager.cc",
"classic/dynamic_channel_service.cc",
"classic/fixed_channel.cc",
@@ -15,6 +14,7 @@
"classic/internal/link_manager.cc",
"classic/internal/signalling_manager.cc",
"classic/l2cap_classic_module.cc",
+ "dynamic_channel.cc",
"internal/basic_mode_channel_data_controller.cc",
"internal/data_pipeline_manager.cc",
"internal/dynamic_channel_allocator.cc",
diff --git a/gd/l2cap/classic/dynamic_channel_manager.h b/gd/l2cap/classic/dynamic_channel_manager.h
index 340d68d..4810270 100644
--- a/gd/l2cap/classic/dynamic_channel_manager.h
+++ b/gd/l2cap/classic/dynamic_channel_manager.h
@@ -19,9 +19,9 @@
#include "hci/acl_manager.h"
#include "hci/address.h"
-#include "l2cap/classic/dynamic_channel.h"
#include "l2cap/classic/dynamic_channel_configuration_option.h"
#include "l2cap/classic/dynamic_channel_service.h"
+#include "l2cap/dynamic_channel.h"
#include "l2cap/l2cap_packets.h"
#include "l2cap/psm.h"
#include "l2cap/security_policy.h"
diff --git a/gd/l2cap/classic/internal/dynamic_channel_service_impl.h b/gd/l2cap/classic/internal/dynamic_channel_service_impl.h
index 2fcf3fc..672d24b 100644
--- a/gd/l2cap/classic/internal/dynamic_channel_service_impl.h
+++ b/gd/l2cap/classic/internal/dynamic_channel_service_impl.h
@@ -18,10 +18,10 @@
#include "common/bind.h"
-#include "l2cap/classic/dynamic_channel.h"
#include "l2cap/classic/dynamic_channel_configuration_option.h"
#include "l2cap/classic/dynamic_channel_manager.h"
#include "l2cap/classic/dynamic_channel_service.h"
+#include "l2cap/dynamic_channel.h"
namespace bluetooth {
namespace l2cap {
diff --git a/gd/l2cap/classic/dynamic_channel.cc b/gd/l2cap/dynamic_channel.cc
similarity index 94%
rename from gd/l2cap/classic/dynamic_channel.cc
rename to gd/l2cap/dynamic_channel.cc
index b42ef88..f8b64e6 100644
--- a/gd/l2cap/classic/dynamic_channel.cc
+++ b/gd/l2cap/dynamic_channel.cc
@@ -14,13 +14,12 @@
* limitations under the License.
*/
-#include "l2cap/classic/dynamic_channel.h"
+#include "l2cap/dynamic_channel.h"
#include "common/bind.h"
#include "l2cap/internal/dynamic_channel_impl.h"
namespace bluetooth {
namespace l2cap {
-namespace classic {
hci::Address DynamicChannel::GetDevice() const {
return impl_->GetDevice();
@@ -40,6 +39,5 @@
DynamicChannel::GetQueueUpEnd() const {
return impl_->GetQueueUpEnd();
}
-} // namespace classic
} // namespace l2cap
} // namespace bluetooth
\ No newline at end of file
diff --git a/gd/l2cap/classic/dynamic_channel.h b/gd/l2cap/dynamic_channel.h
similarity index 98%
rename from gd/l2cap/classic/dynamic_channel.h
rename to gd/l2cap/dynamic_channel.h
index e63f133..b7496f8 100644
--- a/gd/l2cap/classic/dynamic_channel.h
+++ b/gd/l2cap/dynamic_channel.h
@@ -29,8 +29,6 @@
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.
@@ -77,6 +75,5 @@
os::Handler* l2cap_handler_;
};
-} // namespace classic
} // namespace l2cap
} // namespace bluetooth
diff --git a/gd/l2cap/internal/dynamic_channel_impl.cc b/gd/l2cap/internal/dynamic_channel_impl.cc
index f8ece6e..947a32f 100644
--- a/gd/l2cap/internal/dynamic_channel_impl.cc
+++ b/gd/l2cap/internal/dynamic_channel_impl.cc
@@ -45,7 +45,7 @@
}
void DynamicChannelImpl::RegisterOnCloseCallback(os::Handler* user_handler,
- classic::DynamicChannel::OnCloseCallback on_close_callback) {
+ DynamicChannel::OnCloseCallback on_close_callback) {
ASSERT_LOG(user_handler_ == nullptr, "OnCloseCallback can only be registered once");
// If channel is already closed, call the callback immediately without saving it
if (closed_) {
diff --git a/gd/l2cap/internal/dynamic_channel_impl.h b/gd/l2cap/internal/dynamic_channel_impl.h
index db3e2fb..856e21d 100644
--- a/gd/l2cap/internal/dynamic_channel_impl.h
+++ b/gd/l2cap/internal/dynamic_channel_impl.h
@@ -19,7 +19,7 @@
#include "common/bidi_queue.h"
#include "hci/address.h"
#include "l2cap/cid.h"
-#include "l2cap/classic/dynamic_channel.h"
+#include "l2cap/dynamic_channel.h"
#include "l2cap/internal/channel_impl.h"
#include "l2cap/internal/ilink.h"
#include "l2cap/l2cap_packets.h"
@@ -40,8 +40,7 @@
hci::Address GetDevice() const;
- virtual void RegisterOnCloseCallback(os::Handler* user_handler,
- classic::DynamicChannel::OnCloseCallback on_close_callback);
+ virtual void RegisterOnCloseCallback(os::Handler* user_handler, DynamicChannel::OnCloseCallback on_close_callback);
virtual void Close();
virtual void OnClosed(hci::ErrorCode status);
@@ -80,7 +79,7 @@
// User supported states
os::Handler* user_handler_ = nullptr;
- classic::DynamicChannel::OnCloseCallback on_close_callback_{};
+ DynamicChannel::OnCloseCallback on_close_callback_{};
// Internal states
bool closed_ = false;
diff --git a/gd/shim/l2cap.cc b/gd/shim/l2cap.cc
index d703972..7af8f77 100644
--- a/gd/shim/l2cap.cc
+++ b/gd/shim/l2cap.cc
@@ -50,8 +50,7 @@
using ServiceInterfaceCallback =
std::function<void(l2cap::Psm psm, l2cap::classic::DynamicChannelManager::RegistrationResult result)>;
-using ConnectionInterfaceCallback =
- std::function<void(l2cap::Psm psm, std::unique_ptr<l2cap::classic::DynamicChannel>)>;
+using ConnectionInterfaceCallback = std::function<void(l2cap::Psm psm, std::unique_ptr<l2cap::DynamicChannel>)>;
std::unique_ptr<packet::RawBuilder> MakeUniquePacket(const uint8_t* data, size_t len) {
packet::RawBuilder builder;
@@ -63,7 +62,7 @@
class ConnectionInterface {
public:
- ConnectionInterface(ConnectionInterfaceDescriptor cid, std::unique_ptr<l2cap::classic::DynamicChannel> channel,
+ ConnectionInterface(ConnectionInterfaceDescriptor cid, std::unique_ptr<l2cap::DynamicChannel> channel,
os::Handler* handler)
: cid_(cid), channel_(std::move(channel)), handler_(handler), on_data_ready_callback_(nullptr),
on_connection_closed_callback_(nullptr), address_(channel_->GetDevice()) {
@@ -139,7 +138,7 @@
private:
const ConnectionInterfaceDescriptor cid_;
- const std::unique_ptr<l2cap::classic::DynamicChannel> channel_;
+ const std::unique_ptr<l2cap::DynamicChannel> channel_;
os::Handler* handler_;
ReadDataReadyCallback on_data_ready_callback_;
@@ -155,7 +154,7 @@
struct ConnectionInterfaceManager {
public:
- ConnectionInterfaceDescriptor AddChannel(std::unique_ptr<l2cap::classic::DynamicChannel> channel);
+ ConnectionInterfaceDescriptor AddChannel(std::unique_ptr<l2cap::DynamicChannel> channel);
void RemoveConnection(ConnectionInterfaceDescriptor cid);
void SetReadDataReadyCallback(ConnectionInterfaceDescriptor cid, ReadDataReadyCallback on_data_ready);
@@ -218,8 +217,7 @@
return current_connection_interface_descriptor_++;
}
-ConnectionInterfaceDescriptor ConnectionInterfaceManager::AddChannel(
- std::unique_ptr<l2cap::classic::DynamicChannel> channel) {
+ConnectionInterfaceDescriptor ConnectionInterfaceManager::AddChannel(std::unique_ptr<l2cap::DynamicChannel> channel) {
if (!HasResources()) {
return kInvalidConnectionInterfaceDescriptor;
}
@@ -267,7 +265,7 @@
: connection_interface_manager_(connection_interface_manager), psm_(psm), address_(address),
on_open_(std::move(on_open)), completed_(std::move(completed)) {}
- void OnConnectionOpen(std::unique_ptr<l2cap::classic::DynamicChannel> channel) {
+ void OnConnectionOpen(std::unique_ptr<l2cap::DynamicChannel> channel) {
LOG_DEBUG("Local initiated connection is open to device:%s for psm:%hd", address_.ToString().c_str(), psm_);
ConnectionInterfaceDescriptor cid = connection_interface_manager_->AddChannel(std::move(channel));
completed_.set_value(cid);
@@ -322,7 +320,7 @@
completed_.set_value();
}
- void OnConnectionOpen(std::unique_ptr<l2cap::classic::DynamicChannel> channel) {
+ void OnConnectionOpen(std::unique_ptr<l2cap::DynamicChannel> channel) {
LOG_DEBUG("Remote initiated connection is open from device:%s for psm:%hd", channel->GetDevice().ToString().c_str(),
psm_);
hci::Address address = channel->GetDevice();