Ejemplo n.º 1
0
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";
    }
}