mama_status
mamaMsgField_updateU16 (
    mamaMsgField  field,
    mama_u16_t    value)
{
    mamaMsgFieldImpl* impl = (mamaMsgFieldImpl*)field;
    short             owner   = 0;
    msgPayload        payload = NULL;

    if (!impl) return MAMA_STATUS_NULL_ARG;

    mamaMsgImpl_getMessageOwner (impl->myMsg, &owner);
    if (!owner) return MAMA_STATUS_NOT_MODIFIABLE;

    mamaMsgImpl_getPayload (impl->myMsg, &payload);
    if (impl->myPayloadBridge)
    {
        return impl->myPayloadBridge->msgFieldPayloadUpdateU16 (
                   impl->myPayload,
                   payload,
                   value);

    }
    return MAMA_STATUS_NULL_ARG;
}
mama_status
mamaMsgField_updateChar (
    mamaMsgField  field,
    char          value)
{
    mamaMsgFieldImpl* impl = (mamaMsgFieldImpl*)field;
    short             owner   = 0;
    msgPayload        payload = NULL;

    if (!impl) return MAMA_STATUS_NULL_ARG;

    mamaMsgImpl_getMessageOwner (impl->myMsg, &owner);
    CHECK_MODIFY (owner);
    
    mamaMsgImpl_getPayload (impl->myMsg, &payload);

    if (impl->myPayloadBridge)
    {
        return impl->myPayloadBridge->msgFieldPayloadUpdateChar (
                                        impl->myPayload,
                                        payload,
                                        value);

    }
    return MAMA_STATUS_NULL_ARG;
}
mama_status
mamaMsgField_getAsString (
    const mamaMsgField  msgField,
    char *              buf,
    size_t              len)
{
    mamaMsgFieldImpl* impl    = (mamaMsgFieldImpl*)(msgField);
    msgPayload        payload = NULL;
    if (!impl) return MAMA_STATUS_INVALID_ARG;
    mamaMsgImpl_getPayload (impl->myMsg, &payload);

    if (impl->myPayloadBridge)
    {
        return impl->myPayloadBridge->msgFieldPayloadGetAsString (
                   impl->myPayload,
                   payload,
                   buf, len-1);

    }
    return MAMA_STATUS_NULL_ARG;
}