#include "cion/common/file_payload_reader_internal.hh"
#include "cion/common/data_payload.hh"
-#define CION_SERVICE_TYPE "_cion"
+namespace {
-/**
- * ClientChannel implementation
- */
+constexpr char kCionServiceType[] = "_cion";
+
+} // namespace
namespace cion {
namespace channel {
void ClientChannel::Impl::Disconnect(VineDpPtr dp) {
if (connected_peer_ != nullptr && connected_peer_->GetVineClientDp()) {
- LOG(INFO) << "Compare " << dp->GetRawDp() << " : " << connected_peer_->GetVineClientDp()->GetRawDp();
+ LOG(INFO) << "Compare " << dp->GetRawDp() << " : "
+ << connected_peer_->GetVineClientDp()->GetRawDp();
if (*connected_peer_->GetVineClientDp() == *dp) {
parent_->OnDisconnected(connected_peer_);
connected_peer_ = nullptr;
return;
}
discoverer_->SetBrowser(this);
- discoverer_->StartDiscovery(CION_SERVICE_TYPE, service_name_, "");
+ discoverer_->StartDiscovery(kCionServiceType, service_name_, "");
is_discovering_ = true;
}
return;
}
- LOG(INFO) << "TryConnect ";
+ LOG(INFO) << "TryConnect";
std::shared_ptr<ClientPeerInfo> cpeer =
std::dynamic_pointer_cast<ClientPeerInfo>(peer);
connected_peer_ = cpeer;
parcel->ReadUInt32(&cmd);
LOG(INFO) << "CMD " << cmd;
switch (cmd) {
- case cmd::PeerInfo:
- {
+ case cmd::PeerInfo: {
parcel->ReadUInt32(&size);
unsigned char* peerinfo_data =
(unsigned char*)calloc(size, sizeof(unsigned char));
return G_SOURCE_REMOVE;
break;
}
- case cmd::Accept:
- {
+ case cmd::Accept: {
LOG(INFO) << "Connection request accepted";
ConnectionResult result(ConnectionResult::ConnectionStatus::OK);
channel->OnConnectionResult(std::dynamic_pointer_cast<PeerInfo>(
channel->impl_->connected_peer_), result);
break;
}
- case cmd::Reject:
- {
+ case cmd::Reject: {
parcel->ReadUInt32(&size);
char* payload_data = new char[size];
parcel->Read(payload_data, size);
channel->impl_->connected_peer_ = nullptr;
break;
}
- case cmd::AsyncResult:
- {
+ case cmd::AsyncResult: {
parcel->ReadUInt32(&size);
char* data = new char[size];
parcel->Read(data, size);
- std::shared_ptr<PayloadAsyncResult> result
- = std::make_shared<PayloadAsyncResult>(
+ std::shared_ptr<PayloadAsyncResult> result =
+ std::make_shared<PayloadAsyncResult>(
std::vector<uint8_t>(data, data + size));
delete[] data;
result->SetPeerInfo(channel->impl_->connected_peer_);
channel->impl_->async_result_manager_->InvokeResultCallback(result);
break;
}
- case cmd::PayloadAsync:
- {
+ case cmd::PayloadAsync: {
PayloadManager pm(channel);
pm.Process(parcel, job.GetClientDp(),
channel->impl_->my_peer_info_, channel->impl_->connected_peer_);
namespace cion {
PayloadManager::~PayloadManager() {
- LOG(WARNING) << "destroy Payload manager ";
+ LOG(WARNING) << "destroy Payload manager";
}
void PayloadManager::Process(std::shared_ptr<tizen_base::Parcel> parcel,
- std::shared_ptr<VineDp> peer_dp,
- std::shared_ptr<PeerInfo> my_peer_info,
+ std::shared_ptr<VineDp> peer_dp, std::shared_ptr<PeerInfo> my_peer_info,
std::shared_ptr<PeerInfo> sender_peer_info) {
uint32_t size = 0;
parcel->ReadUInt32(&size);
}
void PayloadManager::SendResult(std::shared_ptr<VineDp> dp,
- std::shared_ptr<PeerInfo> peer,
- std::string payload_id,
+ std::shared_ptr<PeerInfo> peer, std::string payload_id,
PayloadAsyncResult::ResultCode result) {
AsyncSender as;
- as.SendResult(dp, peer->GetUUID(),
- peer->GetChannelID(),
- payload_id,
- result);
+ as.SendResult(dp, peer->GetUUID(), peer->GetChannelID(), payload_id, result);
}
void PayloadManager::ProcessData(std::shared_ptr<IPayload> payload,
receiver_->OnPayloadReceived(payload, sender_peer_info,
IPayloadReceiver::PayloadTransferStatus::Success);
SendResult(peer_dp, my_peer_info, payload->GetID(),
- PayloadAsyncResult::ResultCode::Success);
+ PayloadAsyncResult::ResultCode::Success);
}
-bool PayloadManager::IsExist(const std::string &path) {
+bool PayloadManager::IsExist(const std::string& path) {
int fd = open(path.c_str(), O_RDONLY);
if (fd < 0)
return false;
}
void PayloadManager::ResultHanling(std::shared_ptr<IPayload> payload,
- std::shared_ptr<VineDp> peer_dp,
- std::shared_ptr<PeerInfo> my_peer_info,
+ std::shared_ptr<VineDp> peer_dp, std::shared_ptr<PeerInfo> my_peer_info,
std::shared_ptr<PeerInfo> sender_peer_info,
IPayloadReceiver::PayloadTransferStatus status) {
-
receiver_->OnPayloadReceived(payload, sender_peer_info, status);
if (status == IPayloadReceiver::PayloadTransferStatus::Success) {
SendResult(peer_dp, my_peer_info, payload->GetID(),
PayloadAsyncResult::ResultCode::Success);
} else if (status == IPayloadReceiver::PayloadTransferStatus::Failure) {
- LOG(ERROR) << "Payload transfer fail !! " << payload->GetID();
+ LOG(ERROR) << "Payload transfer fail !!" << payload->GetID();
SendResult(peer_dp, my_peer_info, payload->GetID(),
PayloadAsyncResult::ResultCode::Fail);
}
}
void PayloadManager::ProcessFile(std::shared_ptr<IPayload> payload,
- std::shared_ptr<VineDp> peer_dp,
- std::shared_ptr<PeerInfo> my_peer_info,
+ std::shared_ptr<VineDp> peer_dp, std::shared_ptr<PeerInfo> my_peer_info,
std::shared_ptr<PeerInfo> sender_peer_info,
std::shared_ptr<tizen_base::Parcel> parcel) {
LOG(INFO) << "client PayloadReceived from client file";
parcel->ReadUInt32(&cnt);
LOG(INFO) << "file part number : " << cnt;
- const char *temp_dir = aul_get_app_data_path();
+ const char* temp_dir = aul_get_app_data_path();
std::string cion_dir = std::string(temp_dir) + ".cion/.temp/";
if (!IsExist(cion_dir)) {
if (mkdir(cion_dir.c_str(), 0777) < 0) {
filepayload_reader.SetTemporaryFilePath(cion_dir);
std::string temp_path = cion_dir + filepayload_reader.GetTemporaryFileName();
LOG(INFO) << "temp file path : " << temp_path
- << "/ file path : " << filepayload_reader.GetFilePath();
+ << "/ file path : " << filepayload_reader.GetFilePath();
LOG(INFO) << "received (" << fp->GetTotalBytes() << " / " << size << ")";
// When the temp file was already deleted because of any file operation error
file_size = ofile.tellp();
ofile.close();
if (ofile.fail()) { /* In case write buffer fail */
- LOG(ERROR) << "fail to write file!! " << ofile.bad();
+ LOG(ERROR) << "fail to write file!!" << ofile.bad();
std::remove(temp_path.c_str());
ResultHanling(payload, peer_dp, my_peer_info, sender_peer_info,
IPayloadReceiver::PayloadTransferStatus::Failure);
filepayload_reader.SetReceivedBytes(file_size);
ResultHanling(payload, peer_dp, my_peer_info, sender_peer_info,
- IPayloadReceiver::PayloadTransferStatus::InProgress);
+ IPayloadReceiver::PayloadTransferStatus::InProgress);
} else {
LOG(ERROR) << "client receive open fail";
ResultHanling(payload, peer_dp, my_peer_info, sender_peer_info,
- IPayloadReceiver::PayloadTransferStatus::Failure);
+ IPayloadReceiver::PayloadTransferStatus::Failure);
return;
}
if (file_size == fp->GetTotalBytes()) {
ResultHanling(payload, peer_dp, my_peer_info, sender_peer_info,
- IPayloadReceiver::PayloadTransferStatus::Success);
+ IPayloadReceiver::PayloadTransferStatus::Success);
std::remove(temp_path.c_str());
LOG(INFO) << " delete file " << temp_path << " " << file_size
- << " / " << fp->GetTotalBytes();
+ << " / " << fp->GetTotalBytes();
}
}
#include "cion/security/security_info.hh"
#include "cion/vine/vine_security.hh"
-#define CION_SERVICE_TYPE "_cion"
-
-/**
- * ServerChannel implementation
- */
-
namespace {
constexpr int kVineSvcAttrMaxLen = 200;
constexpr char kVineSvcAttrKey1[] = "svcpart1";
constexpr char kVineSvcAttrKey2[] = "svcpart2";
+constexpr char kCionServiceType[] = "_cion";
gboolean IdleCallback(gpointer data) {
auto callback = static_cast<std::function<void()>*>(data);
return FALSE;
}
-}
+} // namespace
namespace cion {
namespace channel {
if (service_ == nullptr) {
Uuid uuid;
service_ = std::make_shared<VineService>(session_,
- CION_SERVICE_TYPE, uuid.GetDeviceUUID(), dp->GetPort(), "");
+ kCionServiceType, uuid.GetDeviceUUID(), dp->GetPort(), "");
// The attribute of vine service has limitaion of its length of value,
// so we need to split cion service_name
size_t len = service_name_.size();
}), nullptr);
}
-void ServerChannel::Reject(
- std::shared_ptr<PeerInfo> peer_info, std::string reason) {
+void ServerChannel::Reject(std::shared_ptr<PeerInfo> peer_info,
+ std::string reason) {
std::shared_ptr<ServerPeerInfo> server_peer_info =
std::dynamic_pointer_cast<ServerPeerInfo>(peer_info);
auto dplist = std::make_shared<std::list<std::shared_ptr<VineDp>>>();
}), nullptr);
}
-void ServerChannel::Impl::OnReceived(
- VineDpPtr dp, std::vector<unsigned char> data) {
+void ServerChannel::Impl::OnReceived(VineDpPtr dp,
+ std::vector<unsigned char> data) {
LOG(INFO) << "server OnReceived " << dp->GetRawDp();
ChannelJob<ServerChannel> job(parent_, std::make_shared<tizen_base::Parcel>(
data.data(), data.size()), dp);
parcel->ReadUInt32(&cmd);
LOG(INFO) << "CMD " << cmd;
switch (cmd) {
- case cmd::CionCmd::PeerInfo:
- {
+ case cmd::CionCmd::PeerInfo: {
LOG(INFO) << "ConnectionRequested";
parcel->ReadUInt32(&size);
unsigned char* peerinfo_data =
free(peerinfo_data);
channel->OnConnectionRequest(req_peer);
}
-
- case cmd::AsyncResult:
- {
+ case cmd::AsyncResult: {
parcel->ReadUInt32(&size);
char* data = new char[size];
parcel->Read(data, size);
channel->impl_->async_result_manager_->InvokeResultCallback(result);
break;
}
-
- case cmd::CionCmd::PayloadAsync:
- {
+ case cmd::CionCmd::PayloadAsync: {
LOG(INFO) << "server PayloadReceived from client";
std::shared_ptr<ServerPeerInfo> speer = nullptr;
for (std::shared_ptr<PeerInfo> peer : channel->impl_->peerlist_) {
channel->impl_->my_peer_info_, speer);
break;
}
-
- case cmd::CionCmd::DataSync:
- {
+ case cmd::CionCmd::DataSync: {
parcel->ReadUInt32(&size);
unsigned int sequence_id;
parcel->ReadUInt32(&sequence_id);
if (*speer->GetClientDp() == *job.GetClientDp()) {
std::vector<char> result = channel->OnDataReceived(
std::vector<char>(sync_data, sync_data + size), peer);
- auto *r = reinterpret_cast<std::vector<uint8_t>*>(&result);
+ auto* r = reinterpret_cast<std::vector<uint8_t>*>(&result);
speer->GetClientDp()->SetSequenceId(sequence_id);
channel->impl_->Send(cmd::CionCmd::DataSyncReply,
speer->GetClientDp(), *r);