Exemplo n.º 1
0
v_cmsoap
v_cmsoapNew(
    v_serviceManager manager,
    const c_char *name,
    const c_char *extStateName,
    v_participantQos qos)
{
    v_kernel k;
    v_cmsoap s;
    v_participantQos q;

    assert(C_TYPECHECK(manager, v_serviceManager));
    assert(name != NULL);

    k = v_objectKernel(manager);
    q = v_participantQosNew(k, qos); 
    if (q == NULL) {
        OS_REPORT(OS_ERROR, "v_cmsoapNew", 0,
                  "CMSoap service not created: inconsistent qos");
        s = NULL;
    } else {
        s = v_cmsoap(v_objectNew(k, K_CMSOAP));
        v_serviceInit(v_service(s), manager, name, extStateName, q, v_statistics(v_cmsoapStatisticsNew(k)));
        c_free(q);
        /* always add, even when s->state==NULL, since v_participantFree always
           removes the participant.*/
        v_addParticipant(k, v_participant(s));
        if (v_service(s)->state == NULL) {
            v_serviceFree(v_service(s));
            s = NULL;
        }
    }
    return s;
}
Exemplo n.º 2
0
static void
cms_clientStatisticsThreadRemove(
    v_public entity,
    c_voidp args)
{
    v_cmsoap cmsoap = v_cmsoap(entity);

    OS_UNUSED_ARG(args);

    if (cmsoap->statistics) {
        cmsoap->statistics->clientThreads--;
    }
}
Exemplo n.º 3
0
static void
cms_clientStatisticsThreadAdd(
    v_public entity,
    c_voidp args)
{
    v_cmsoap cmsoap = v_cmsoap(entity);

    OS_UNUSED_ARG(args);

    if (cmsoap->statistics) {
        cmsoap->statistics->clientThreads++;
        v_maxValueSetValue(&cmsoap->statistics->maxClientThreads,
                           cmsoap->statistics->clientThreads);
    }
}