void safTerminate(SaInvocationT invocation, const SaNameT *compName) { SaAisErrorT rc = SA_AIS_OK; clprintf (CL_LOG_SEV_INFO, "Component [%.*s] : PID [%d]. Terminating\n", compName->length, compName->value, mypid); /* * Unregister with AMF and respond to AMF saying whether the * termination was successful or not. */ if ( (rc = saAmfComponentUnregister(amfHandle, compName, NULL)) != SA_AIS_OK) { clprintf (CL_LOG_SEV_ERROR, "Component [%.*s] : PID [%d]. Unregister failed with error [0x%x]\n", compName->length, compName->value, mypid, rc); return; } /* Ok tell SAFplus that we handled it properly */ saAmfResponse(amfHandle, invocation, SA_AIS_OK); clprintf (CL_LOG_SEV_INFO, "Component [%.*s] : PID [%d]. Terminated\n", compName->length, compName->value, mypid); clEvalAppLogStreamClose(gEvalLogStream); unblockNow = CL_TRUE; }
ClRcT clCompAppTerminate( ClInvocationT invocation, const ClNameT *compName) { ClRcT rc = CL_OK; clprintf (CL_LOG_SEV_INFO, "Component [%s] : PID [%ld]. Terminating", compName->value, mypid); /* * ---BEGIN_APPLICATION_CODE--- */ // ... /* * ---END_APPLICATION_CODE--- */ /* * Unregister with AMF and send back a response */ if ( (rc = clCpmComponentUnregister(cpmHandle, compName, NULL)) ) goto errorexit; if ( (rc = clCpmClientFinalize(cpmHandle)) ) goto errorexit; clprintf (CL_LOG_SEV_INFO, "Component [%s] : PID [%ld]. Terminated", compName->value, mypid); clCpmResponse(cpmHandle, invocation, CL_OK); clEvalAppLogStreamClose(gEvalLogStream); return rc; errorexit: clprintf (CL_LOG_SEV_ERROR, "Component [%s] : PID [%ld]. Termination error [0x%x]", compName->value, mypid, rc); return rc; }