Exemplo n.º 1
0
static const v_qosChangeMask immutableMask = V_POLICY_BIT_USERKEY;

v_dataViewQos
v_dataViewQosNew(
    v_kernel kernel,
    v_dataViewQos template)
{
    v_dataViewQos q;
    c_base base;

    assert(kernel != NULL);
    assert(C_TYPECHECK(kernel,v_kernel));

    base = c_getBase(c_object(kernel));
    q = v_dataViewQos(v_qosCreate(kernel,V_DATAVIEW_QOS));

    if (q != NULL) {
        if (template != NULL) {
            if (((v_qos)template)->kind != V_DATAVIEW_QOS) {
                OS_REPORT_1(OS_ERROR,
                            "v_dataViewQos::New",0,
                            "Illegal Qos kind specified (%s)",
                            v_qosKindImage(v_qos(template)->kind));
                c_free(q);
                return NULL;
            } else {
                q->userKey.enable = template->userKey.enable;
                if (q->userKey.enable) {
                    q->userKey.expression = c_stringNew(base,template->userKey.expression);
                } else {
Exemplo n.º 2
0
    return result;
}

v_writerQos
v_writerQosNew(
    v_kernel kernel,
    v_writerQos template)
{
    v_writerQos q;
    c_base base;

    assert(kernel != NULL);
    assert(C_TYPECHECK(kernel,v_kernel));

    base = c_getBase(c_object(kernel));
    q = v_writerQos(v_qosCreate(base,V_WRITER_QOS));

    if (q != NULL) {
        if (template != NULL) {
            *q = *template;
            q->userData.v.size = template->userData.v.size;
            if (template->userData.v.size > 0) {
                q->userData.v.value = c_arrayNew(c_octet_t(base),(c_ulong)template->userData.v.size);
                memcpy(q->userData.v.value,template->userData.v.value,(c_ulong)template->userData.v.size);
            } else {
                q->userData.v.value = NULL;
            }
        } else {
            q->durability.v.kind                              = V_DURABILITY_VOLATILE;
            q->deadline.v.period                              = OS_DURATION_INFINITE;
            q->latency.v.duration                             = OS_DURATION_ZERO;