Base class should be accessed by pointer type.
Use const reference of vector to avoid unnecessary copy.
Change-Id: I8efae6bcc65e8f7917632cee623cb7ff478722cc
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
}
}
-void BroadcastChannel::OnDataEvent(const IDataInfo& info,
- std::vector<char> data) {
+void BroadcastChannel::OnDataEvent(std::shared_ptr<IDataInfo> info,
+ const std::vector<char>& data) {
}
-void BroadcastChannel::OnConnectionEvent(const IConnectionInfo& info,
- std::vector<char> serialized_peerInfo) {
+void BroadcastChannel::OnConnectionEvent(std::shared_ptr<IConnectionInfo> info,
+ const std::vector<char>& serialized_peerInfo) {
}
protected:
virtual void OnMessageReceived(IPayload* data,
std::shared_ptr<PeerInfo> peer) = 0;
- void OnDataEvent(const IDataInfo& info,
- std::vector<char> serialized_payload) override;
- void OnConnectionEvent(const IConnectionInfo& info,
- std::vector<char> serialized_peerinfo) override;
+ void OnDataEvent(std::shared_ptr<IDataInfo> info,
+ const std::vector<char>& serialized_payload) override;
+ void OnConnectionEvent(std::shared_ptr<IConnectionInfo> info,
+ const std::vector<char>& serialized_peerinfo) override;
std::string GetServiceName() override;
int GetChannelId() override;
* limitations under the License.
*/
+#include <memory>
+
#include "client_channel.hh"
#include "client_channel_implementation.hh"
#include "control_info.hh"
}
void ClientChannel::TryDiscovery() {
- auto ci = ControlInfo(IControlInfo::ControlType::DISCOVERY,
+ auto ci = std::make_shared<ControlInfo>(IControlInfo::ControlType::DISCOVERY,
IControlInfo::ChannelType::COMMUNICATION, impl_->service_name_);
impl_->sender_->OperateChannel(ci, nullptr);
}
void ClientChannel::StopDiscovery() {
- auto ci = ControlInfo(IControlInfo::ControlType::STOP_DISCOVERY,
+ auto ci = std::make_shared<ControlInfo>(
+ IControlInfo::ControlType::STOP_DISCOVERY,
IControlInfo::ChannelType::COMMUNICATION, impl_->service_name_);
impl_->sender_->OperateChannel(ci, nullptr);
}
void ClientChannel::Connect(std::shared_ptr<PeerInfo> peer) {
- auto ci = ControlInfo(IControlInfo::ControlType::CONNECT,
+ auto ci = std::make_shared<ControlInfo>(IControlInfo::ControlType::CONNECT,
IControlInfo::ChannelType::COMMUNICATION, impl_->service_name_);
impl_->sender_->OperateChannel(ci, peer);
}
void ClientChannel::Disconnect() {
- auto ci = ControlInfo(IControlInfo::ControlType::DISCONNECT,
+ auto ci = std::make_shared<ControlInfo>(IControlInfo::ControlType::DISCONNECT,
IControlInfo::ChannelType::COMMUNICATION, impl_->service_name_);
impl_->sender_->OperateChannel(ci, impl_->peer_);
}
std::vector<char> ClientChannel::SendData(std::vector<char> data, int timeout) {
- auto di = DataInfo(IDataInfo::MessageType::Sync, impl_->peer_->GetUUID());
+ auto di = std::make_shared<DataInfo>(IDataInfo::MessageType::Sync,
+ impl_->peer_->GetUUID());
return impl_->sender_->SendData(data, di, impl_->peer_, timeout);
}
void ClientChannel::SendPayLoadAsync(IPayload* data) {
- auto di = DataInfo(IDataInfo::MessageType::Sync, impl_->peer_->GetUUID());
+ auto di = std::make_shared<DataInfo>(IDataInfo::MessageType::Sync,
+ impl_->peer_->GetUUID());
impl_->sender_->SendData(data->Serialize(), di, impl_->peer_, -1);
}
return impl_->peer_;
}
-void ClientChannel::OnDataEvent(const IDataInfo& info, std::vector<char> data) {
- if (info.GetType() == IDataInfo::MessageType::Async) {
- auto pl = DataPayload(data);
+void ClientChannel::OnDataEvent(std::shared_ptr<IDataInfo> info,
+ const std::vector<char>& data) {
+ if (info->GetType() == IDataInfo::MessageType::Async) {
+ auto pl = std::make_shared<DataPayload>(data);
OnPayloadReceived(pl);
}
}
-void ClientChannel::OnConnectionEvent(const IConnectionInfo& info,
- std::vector<char> serialized_peerInfo) {
+void ClientChannel::OnConnectionEvent(std::shared_ptr<IConnectionInfo> info,
+ const std::vector<char>& serialized_peerInfo) {
std::shared_ptr<PeerInfo> peer;
- IConnectionInfo::ConnectionType type = info.GetConnectionType();
+ IConnectionInfo::ConnectionType type = info->GetConnectionType();
switch (type) {
case IConnectionInfo::ConnectionType::Connected: {
impl_->peer_ = std::shared_ptr<PeerInfo>(peer);
protected:
virtual void OnConnentionStatusChaneged(std::shared_ptr<PeerInfo> peer,
IConnectionInfo::ConnectionStatus status) = 0;
- virtual void OnPayloadReceived(IPayload& data) = 0;
+ virtual void OnPayloadReceived(std::shared_ptr<IPayload> data) = 0;
virtual void OnErrorReported(int code, std::shared_ptr<PeerInfo> peer) = 0;
virtual void OnDiscovered(std::shared_ptr<PeerInfo> peer) = 0;
- void OnDataEvent(const IDataInfo& info,
- std::vector<char> serialized_payload) override;
- void OnConnectionEvent(const IConnectionInfo& info,
- std::vector<char> serialized_peerinfo) override;
+ void OnDataEvent(std::shared_ptr<IDataInfo> info,
+ const std::vector<char>& serialized_payload) override;
+ void OnConnectionEvent(std::shared_ptr<IConnectionInfo> info,
+ const std::vector<char>& serialized_peerinfo) override;
std::string GetServiceName() override;
int GetChannelId() override;
#ifndef CION_IEVENTOBSERVER_H_
#define CION_IEVENTOBSERVER_H_
+#include <memory>
#include <string>
#include <vector>
class IEventObserver {
public:
- virtual void OnDataEvent(const IDataInfo& info,
- std::vector<char> serialized_payload) = 0;
+ virtual void OnDataEvent(std::shared_ptr<IDataInfo> info,
+ const std::vector<char>& serialized_payload) = 0;
- virtual void OnConnectionEvent(const IConnectionInfo& info,
- std::vector<char> serialized_peerinfo) = 0;
+ virtual void OnConnectionEvent(std::shared_ptr<IConnectionInfo> info,
+ const std::vector<char>& serialized_peerinfo) = 0;
virtual std::string GetServiceName() = 0;
virtual int GetChannelId() = 0;
class IEventSender {
public:
- virtual void SendDataAsync(std::vector<char> serialized_payload,
- const IDataInfo& info, std::shared_ptr<PeerInfo> peer_info) = 0;
- virtual std::vector<char> SendData(std::vector<char> serialized_payload,
- const IDataInfo& info, std::shared_ptr<PeerInfo> peer_info,
+ virtual void SendDataAsync(const std::vector<char>& serialized_payload,
+ std::shared_ptr<IDataInfo> info, std::shared_ptr<PeerInfo> peer_info) = 0;
+ virtual std::vector<char> SendData(
+ const std::vector<char>& serialized_payload,
+ std::shared_ptr<IDataInfo> info, std::shared_ptr<PeerInfo> peer_info,
int timeout) = 0;
- virtual void OperateChannel(const IControlInfo& info,
+ virtual void OperateChannel(std::shared_ptr<IControlInfo> info,
std::shared_ptr<PeerInfo> peer_info) = 0;
virtual void SetSecurity(SecurityInfo sec) = 0;
};
* limitations under the License.
*/
+#include <memory>
+
#include "server_channel.hh"
#include "server_channel_implementation.hh"
#include "control_info.hh"
}
void ServerChannel::Listen() {
- auto ci = ControlInfo(IControlInfo::ControlType::LISTEN,
+ auto ci = std::make_shared<ControlInfo>(IControlInfo::ControlType::LISTEN,
IControlInfo::ChannelType::COMMUNICATION, impl_->service_name_);
impl_->listener_->RegisterObserver(this);
impl_->sender_->OperateChannel(ci, impl_->peer_info_);
}
void ServerChannel::Stop() {
- auto ci = ControlInfo(IControlInfo::ControlType::STOP,
+ auto ci = std::make_shared<ControlInfo>(IControlInfo::ControlType::STOP,
IControlInfo::ChannelType::COMMUNICATION, impl_->service_name_);
impl_->listener_->UnregisterObserver(this);
impl_->sender_->OperateChannel(ci, impl_->peer_info_);
}
void ServerChannel::Disconnect(std::shared_ptr<PeerInfo> peer) {
- auto ci = ControlInfo(IControlInfo::ControlType::DISCONNECT,
+ auto ci = std::make_shared<ControlInfo>(IControlInfo::ControlType::DISCONNECT,
IControlInfo::ChannelType::COMMUNICATION, impl_->service_name_);
impl_->sender_->OperateChannel(ci, peer);
}
}
-void ServerChannel::OnDataEvent(const IDataInfo& info, std::vector<char> data) {
+void ServerChannel::OnDataEvent(std::shared_ptr<IDataInfo> info,
+ const std::vector<char>& data) {
for (auto& i : impl_->peerlist_) {
- if (i->GetUUID() == info.GetUUID()) {
- if (info.GetType() == IDataInfo::MessageType::Async) {
- auto pl = DataPayload(data);
+ if (i->GetUUID() == info->GetUUID()) {
+ if (info->GetType() == IDataInfo::MessageType::Async) {
+ auto pl = std::make_shared<DataPayload>(data);
OnPayloadReceived(pl, i);
- } else if (info.GetType() == IDataInfo::MessageType::Sync) {
+ } else if (info->GetType() == IDataInfo::MessageType::Sync) {
OnDataReceived(data, i);
}
break;
}
}
-void ServerChannel::OnConnectionEvent(const IConnectionInfo& info,
- std::vector<char> serialized_peerInfo) {
+void ServerChannel::OnConnectionEvent(std::shared_ptr<IConnectionInfo> info,
+ const std::vector<char>& serialized_peerInfo) {
std::shared_ptr<PeerInfo> peer;
- IConnectionInfo::ConnectionType type = info.GetConnectionType();
+ IConnectionInfo::ConnectionType type = info->GetConnectionType();
switch (type) {
case IConnectionInfo::ConnectionType::ConnectionRequested: {
OnConnentionRequest(peer);
}
case IConnectionInfo::ConnectionType::Disconnected: {
for (auto it : impl_->peerlist_) {
- if (it->GetUUID() == info.GetUUID()) {
+ if (it->GetUUID() == info->GetUUID()) {
impl_->peerlist_.remove(it);
break;
}
protected:
virtual void OnConnentionStatusChaneged(std::shared_ptr<PeerInfo> peer,
IConnectionInfo::ConnectionStatus status) = 0;
- virtual std::vector<char> OnDataReceived(std::vector<char> data,
+ virtual std::vector<char> OnDataReceived(const std::vector<char>& data,
std::shared_ptr<PeerInfo> peer) = 0;
- virtual void OnPayloadReceived(IPayload& data,
+ virtual void OnPayloadReceived(std::shared_ptr<IPayload> data,
std::shared_ptr<PeerInfo> peer) = 0;
virtual bool OnConnentionRequest(std::shared_ptr<PeerInfo> peer) = 0;
virtual void OnErrorReported(int code, std::shared_ptr<PeerInfo> peer) = 0;
- void OnDataEvent(const IDataInfo& info,
- std::vector<char> serialized_payload) override;
- void OnConnectionEvent(const IConnectionInfo& info,
- std::vector<char> serialized_peerinfo) override;
+ void OnDataEvent(std::shared_ptr<IDataInfo> info,
+ const std::vector<char>& serialized_payload) override;
+ void OnConnectionEvent(std::shared_ptr<IConnectionInfo> info,
+ const std::vector<char>& serialized_peerinfo) override;
std::string GetServiceName() override;
int GetChannelId() override;
void VineManager::UnregisterObserver(channel::IEventObserver* observer) {
}
-void VineManager::SendDataAsync(std::vector<char> serialized_payload,
- channel::IDataInfo& info, int channel_id,
+void VineManager::SendDataAsync(const std::vector<char>& serialized_payload,
+ std::shared_ptr<channel::IDataInfo> info, int channel_id,
std::shared_ptr<PeerInfo> peer_info) {
}
-std::vector<char> VineManager::SendData(std::vector<char> serialized_payload,
- channel::IDataInfo& info, int channel_id,
+std::vector<char> VineManager::SendData(
+ const std::vector<char>& serialized_payload,
+ std::shared_ptr<channel::IDataInfo> info, int channel_id,
std::string peer_uuid, int timeout) {
return {};
}
void VineManager::OperateChannel(int channel_id,
- const channel::IControlInfo& info, std::shared_ptr<PeerInfo> peer_info) {
+ std::shared_ptr<channel::IControlInfo> info,
+ std::shared_ptr<PeerInfo> peer_info) {
}
} // namespace cion
\ No newline at end of file
void UnregisterSender(int channel_id);
void RegisterObserver(channel::IEventObserver* observer);
void UnregisterObserver(channel::IEventObserver* observer);
- void SendDataAsync(std::vector<char> serialized_payload,
- channel::IDataInfo& info, int channel_id,
+ void SendDataAsync(const std::vector<char>& serialized_payload,
+ std::shared_ptr<channel::IDataInfo> info, int channel_id,
std::shared_ptr<PeerInfo> peer_info);
- std::vector<char> SendData(std::vector<char> serialized_payload,
- channel::IDataInfo& info, int channel_id,
+ std::vector<char> SendData(const std::vector<char>& serialized_payload,
+ std::shared_ptr<channel::IDataInfo> info, int channel_id,
std::string peer_uuid, int timeout);
- void OperateChannel(int channel_id, const channel::IControlInfo& info,
+ void OperateChannel(int channel_id,
+ std::shared_ptr<channel::IControlInfo> info,
std::shared_ptr<PeerInfo> peer_info);
void Discovery();
VineManager();
}
VineSender::Impl::Impl(std::string service_name, int channel_id)
- : service_name_(service_name), channel_id_(channel_id) {
+ : service_name_(service_name), channel_id_(channel_id) {
port_ = 0;
VineManager::GetInst().RegisterSender(service_name, channel_id);
}
VineManager::GetInst().UnregisterSender(channel_id_);
}
-void VineSender::Impl::OperateChannel(const channel::IControlInfo& info,
- std::shared_ptr<PeerInfo> peer_info) {
-
- VineManager::GetInst().OperateChannel(channel_id_, info, peer_info);
+void VineSender::Impl::OperateChannel(
+ std::shared_ptr<channel::IControlInfo> info,
+ std::shared_ptr<PeerInfo> peer_info) {
+ VineManager::GetInst().OperateChannel(channel_id_, info, peer_info);
}
-void VineSender::SendDataAsync(std::vector<char> serialized_payload,
- const channel::IDataInfo& info, std::shared_ptr<PeerInfo> peer_info) {
+void VineSender::SendDataAsync(const std::vector<char>& serialized_payload,
+ std::shared_ptr<channel::IDataInfo> info,
+ std::shared_ptr<PeerInfo> peer_info) {
}
-std::vector<char> VineSender::SendData(std::vector<char> serialized_payload,
- const channel::IDataInfo& info, std::shared_ptr<PeerInfo> peer_info, int timeout) {
+std::vector<char> VineSender::SendData(
+ const std::vector<char>& serialized_payload,
+ std::shared_ptr<channel::IDataInfo> info,
+ std::shared_ptr<PeerInfo> peer_info, int timeout) {
return {};
}
-void VineSender::OperateChannel(const channel::IControlInfo& info,
+void VineSender::OperateChannel(std::shared_ptr<channel::IControlInfo> info,
std::shared_ptr<PeerInfo> peer_info) {
impl_->OperateChannel(info, peer_info);
}
virtual ~VineSender();
protected:
- void SendDataAsync(std::vector<char> serialized_payload,
- const channel::IDataInfo& info,
+ void SendDataAsync(const std::vector<char>& serialized_payload,
+ std::shared_ptr<channel::IDataInfo> info,
std::shared_ptr<PeerInfo> peer_info) override;
- std::vector<char> SendData(std::vector<char> serialized_payload,
- const channel::IDataInfo& info,
+ std::vector<char> SendData(const std::vector<char>& serialized_payload,
+ std::shared_ptr<channel::IDataInfo> info,
std::shared_ptr<PeerInfo> peer_info, int timeout) override;
- void OperateChannel(const channel::IControlInfo& info,
+ void OperateChannel(std::shared_ptr<channel::IControlInfo> info,
std::shared_ptr<PeerInfo> peer_info) override;
void SetSecurity(SecurityInfo sec) override;
#ifndef CION_API_VINE_SENDER_IMPLEMENTATION_HH_
#define CION_API_VINE_SENDER_IMPLEMENTATION_HH_
+#include <memory>
+
#include "cion/common/peer_info.hh"
#include "cion/channel/idata_info.hh"
#include "cion/channel/icontrol_info.hh"
friend class VineSender;
explicit Impl(std::string service_name, int channel_id);
- void OperateChannel(const channel::IControlInfo& info,
+ void OperateChannel(std::shared_ptr<channel::IControlInfo> info,
std::shared_ptr<PeerInfo> peer_info);
private: