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; }
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--; } }
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); } }