bool SchemaImpl::isCompatibleType()

in src/qmf/Schema.cpp [298:346]


bool SchemaImpl::isCompatibleType(int qmfType, qpid::types::VariantType qpidType) const
{
    bool typeValid(false);

    switch (qpidType) {
    case qpid::types::VAR_VOID:
        if (qmfType == SCHEMA_DATA_VOID)
            typeValid = true;
        break;
    case qpid::types::VAR_BOOL:
        if (qmfType == SCHEMA_DATA_BOOL)
            typeValid = true;
        break;
    case qpid::types::VAR_UINT8:
    case qpid::types::VAR_UINT16:
    case qpid::types::VAR_UINT32:
    case qpid::types::VAR_UINT64:
    case qpid::types::VAR_INT8:
    case qpid::types::VAR_INT16:
    case qpid::types::VAR_INT32:
    case qpid::types::VAR_INT64:
        if (qmfType == SCHEMA_DATA_INT)
            typeValid = true;
        break;
    case qpid::types::VAR_FLOAT:
    case qpid::types::VAR_DOUBLE:
        if (qmfType == SCHEMA_DATA_FLOAT)
            typeValid = true;
        break;
    case qpid::types::VAR_STRING:
        if (qmfType == SCHEMA_DATA_STRING)
            typeValid = true;
        break;
    case qpid::types::VAR_MAP:
        if (qmfType == SCHEMA_DATA_MAP)
            typeValid = true;
        break;
    case qpid::types::VAR_LIST:
        if (qmfType == SCHEMA_DATA_LIST)
            typeValid = true;
        break;
    case qpid::types::VAR_UUID:
        if (qmfType == SCHEMA_DATA_UUID)
            typeValid = true;
        break;
    }

    return typeValid;
}