MCPcopy Create free account
hub / github.com/RGAA-Software/GoDesk / ProcessPluginEvent

Method ProcessPluginEvent

src/client/plugins/ct_plugin_event_router.cpp:25–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23 }
24
25 void ClientPluginEventRouter::ProcessPluginEvent(const std::shared_ptr<ClientPluginBaseEvent>& event) {
26 if (!thunder_sdk_) {
27 thunder_sdk_ = ws_->GetThunderSdk();
28 }
29 if (ClientPluginEventType::kPluginTestEvent == event->event_type_) {
30 auto target_event = std::dynamic_pointer_cast<ClientPluginTestEvent>(event);
31 }
32 else if (ClientPluginEventType::kPluginNotifyMsgEvent == event->event_type_) {
33 auto target_event = std::dynamic_pointer_cast<ClientPluginNotifyMsgEvent>(event);
34 this->context_->NotifyAppMessage(QString::fromStdString(target_event->title_),
35 QString::fromStdString(target_event->message_),
36 [=]() {
37 if (target_event->clicked_cbk_) {
38 target_event->clicked_cbk_();
39 }
40 }
41 );
42 }
43 else if (ClientPluginEventType::kPluginClipboardEvent == event->event_type_) {
44 auto target_event = std::dynamic_pointer_cast<ClientPluginClipboardEvent>(event);
45 if (target_event->type_ == ClipboardType::kClipboardText) {
46 context_->SendAppMessage(MsgClientClipboard {
47 .type_ = target_event->type_,
48 .msg_ = target_event->text_msg_,
49 });
50 }
51 else if (target_event->type_ == ClipboardType::kClipboardFiles) {
52 context_->SendAppMessage(MsgClientClipboard {
53 .type_ = target_event->type_,
54 .files_ = target_event->cp_files_,
55 });
56 }
57 }
58 else if (ClientPluginEventType::kPluginNetworkEvent == event->event_type_) {
59 auto target_event = std::dynamic_pointer_cast<ClientPluginNetworkEvent>(event);
60 if (target_event->media_channel_) {
61 LOGI("Will post to media channel.");
62 thunder_sdk_->PostMediaMessage(target_event->buf_);
63 }
64 else {
65 thunder_sdk_->PostFileTransferMessage(target_event->buf_);
66 }
67 }
68 else if (ClientPluginEventType::kPluginFileTransBeginEvent == event->event_type_) {
69 auto target_event = std::dynamic_pointer_cast<ClientPluginFileTransferBeginEvent>(event);
70 context_->SendAppMessage(MsgClientFileTransmissionBegin {
71 .the_file_id_ = MD5::Hex(target_event->task_id_),
72 .begin_timestamp_ = (int64_t)TimeUtil::GetCurrentTimestamp(),
73 .direction_ = target_event->direction_,
74 .file_detail_ = target_event->file_path_,
75 .remote_device_id_ = settings_->remote_device_id_.empty() ? settings_->host_ : settings_->remote_device_id_,
76 });
77 }
78 else if (ClientPluginEventType::kPluginFileTransferEndEvent == event->event_type_) {
79 auto target_event = std::dynamic_pointer_cast<ClientPluginFileTransferEndEvent>(event);
80 context_->SendAppMessage(MsgClientFileTransmissionEnd {
81 .the_file_id_ = MD5::Hex(target_event->task_id_),
82 .end_timestamp_ = (int64_t)TimeUtil::GetCurrentTimestamp(),

Callers 1

Calls 5

GetThunderSdkMethod · 0.80
PostMediaMessageMethod · 0.80
NotifyAppMessageMethod · 0.45
SendAppMessageMethod · 0.45

Tested by

no test coverage detected