void IpcClientInterface::dispatch(const QVariant &message) { static const int aliveMessageType = QMetaType::type("ClangBackEnd::AliveMessage"); static const int echoMessageType = QMetaType::type("ClangBackEnd::EchoMessage"); static const int codeCompletedMessageType = QMetaType::type("ClangBackEnd::CodeCompletedMessage"); static const int translationUnitDoesNotExistMessage = QMetaType::type("ClangBackEnd::TranslationUnitDoesNotExistMessage"); static const int projectPartsDoNotExistMessage = QMetaType::type("ClangBackEnd::ProjectPartsDoNotExistMessage"); static const int diagnosticsChangedMessage = QMetaType::type("ClangBackEnd::DiagnosticsChangedMessage"); int type = message.userType(); if (type == aliveMessageType) alive(); else if (type == echoMessageType) echo(message.value<EchoMessage>()); else if (type == codeCompletedMessageType) codeCompleted(message.value<CodeCompletedMessage>()); else if (type == translationUnitDoesNotExistMessage) translationUnitDoesNotExist(message.value<TranslationUnitDoesNotExistMessage>()); else if (type == projectPartsDoNotExistMessage) projectPartsDoNotExist(message.value<ProjectPartsDoNotExistMessage>()); else if (type == diagnosticsChangedMessage) diagnosticsChanged(message.value<DiagnosticsChangedMessage>()); else qWarning() << "Unknown IpcClientMessage"; }
void ClangCodeModelClientInterface::dispatch(const MessageEnvelop &messageEnvelop) { switch (messageEnvelop.messageType()) { case MessageType::AliveMessage: alive(); break; case MessageType::EchoMessage: echo(messageEnvelop.message<EchoMessage>()); break; case MessageType::CodeCompletedMessage: codeCompleted(messageEnvelop.message<CodeCompletedMessage>()); break; case MessageType::TranslationUnitDoesNotExistMessage: translationUnitDoesNotExist(messageEnvelop.message<TranslationUnitDoesNotExistMessage>()); break; case MessageType::ProjectPartsDoNotExistMessage: projectPartsDoNotExist(messageEnvelop.message<ProjectPartsDoNotExistMessage>()); break; case MessageType::DocumentAnnotationsChangedMessage: documentAnnotationsChanged(messageEnvelop.message<DocumentAnnotationsChangedMessage>()); break; default: qWarning() << "Unknown ClangCodeModelClientMessage"; } }