/************************************************************************** * FUNCTION: Java_org_opensaf_ais_amf_CsiManagerImpl_getHaState * TYPE: native method * Class: ais_amf_CsiManager * Method: getHaState * Signature: (Ljava/lang/String;Ljava/lang/String;)Lorg/saforum/ais/amf/HaState; *************************************************************************/ JNIEXPORT jobject JNICALL Java_org_opensaf_ais_amf_CsiManagerImpl_getHaState(JNIEnv *jniEnv, jobject thisCsiManager, jstring componentName, jstring csiName) { // VARIABLES SaNameT _saComponentName; SaNameT *_saComponentNamePtr = &_saComponentName; SaNameT _saCsiName; SaNameT *_saCsiNamePtr = &_saCsiName; SaAmfHandleT _saAmfHandle; SaAmfHAStateT _saHaState = SA_AMF_HA_QUIESCING + 1; // this is an invalid value... SaAisErrorT _saStatus; // JNI jobject _amfLibraryHandle; jobject _haState; // BODY assert(thisCsiManager != NULL); _TRACE2 ("NATIVE: Executing Java_org_opensaf_ais_amf_CsiManagerImpl_getHaState()\n"); // get Java library handle _amfLibraryHandle = (*jniEnv)->GetObjectField(jniEnv, thisCsiManager, FID_amfLibraryHandle); assert(_amfLibraryHandle != NULL); // get native library handle _saAmfHandle = (SaAmfHandleT)(*jniEnv)->GetLongField(jniEnv, _amfLibraryHandle, FID_saAmfHandle); // copy Java component name object if (JNU_copyFromStringToSaNameT(jniEnv, componentName, &_saComponentNamePtr) != JNI_TRUE) { return NULL; // EXIT POINT! Exception pending... } U_printSaName("NATIVE: component name is ", _saComponentNamePtr); // copy Java CSI name object if (JNU_copyFromStringToSaNameT(jniEnv, csiName, &_saCsiNamePtr) != JNI_TRUE) { return NULL; // EXIT POINT! Exception pending... } U_printSaName("NATIVE: CSI name is ", _saCsiNamePtr); _TRACE2 ("NATIVE: _saHaState before calling saAmfHAStateGet(...) is: %d\n", _saHaState); // call saAmfHAStateGet _saStatus = saAmfHAStateGet(_saAmfHandle, _saComponentNamePtr, _saCsiNamePtr, &_saHaState); _TRACE2 ("NATIVE: _saHaState after saAmfHAStateGet(...) has returned is: %d\n", _saHaState); _TRACE2("NATIVE: saAmfHAStateGet(...) has returned with %d...\n", _saStatus); // error handling if (_saStatus != SA_AIS_OK) { switch (_saStatus) { case SA_AIS_ERR_LIBRARY: JNU_throwNewByName(jniEnv, "org/saforum/ais/AisLibraryException", AIS_ERR_LIBRARY_MSG); break; case SA_AIS_ERR_TIMEOUT: JNU_throwNewByName(jniEnv, "org/saforum/ais/AisTimeoutException", AIS_ERR_TIMEOUT_MSG); break; case SA_AIS_ERR_TRY_AGAIN: JNU_throwNewByName(jniEnv, "org/saforum/ais/AisTryAgainException", AIS_ERR_TRY_AGAIN_MSG); break; case SA_AIS_ERR_BAD_HANDLE: JNU_throwNewByName(jniEnv, "org/saforum/ais/AisBadHandleException", AIS_ERR_BAD_HANDLE_MSG); break; case SA_AIS_ERR_INVALID_PARAM: JNU_throwNewByName(jniEnv, "org/saforum/ais/AisInvalidParamException", AIS_ERR_INVALID_PARAM_MSG); break; case SA_AIS_ERR_NO_MEMORY: JNU_throwNewByName(jniEnv, "org/saforum/ais/AisNoMemoryException", AIS_ERR_NO_MEMORY_MSG); break; case SA_AIS_ERR_NO_RESOURCES: JNU_throwNewByName(jniEnv, "org/saforum/ais/AisNoResourcesException", AIS_ERR_NO_RESOURCES_MSG); break; case SA_AIS_ERR_NOT_EXIST: JNU_throwNewByName(jniEnv, "org/saforum/ais/AisNotExistException", AIS_ERR_NOT_EXIST_MSG); break; default: // this should not happen here! assert(JNI_FALSE); JNU_throwNewByName(jniEnv, "org/saforum/ais/AisLibraryException", AIS_ERR_LIBRARY_MSG); break; } return NULL; // EXIT POINT! Exception pending... } // return HA state _haState = JNU_HaState_getEnum(jniEnv, _saHaState); if (_haState == NULL) { // this should not happen here! _TRACE2("NATIVE ERROR: _haState is NULL\n"); return NULL; // AisLibraryException thrown already... } U_printSaAmfHAState ("NATIVE: Java_org_opensaf_ais_amf_CsiManagerImpl_getHaState(...) returning normally with HA state: ", _saHaState); return _haState; }
/************************************************************************** * FUNCTION: Java_org_opensaf_ais_amf_ComponentRegistryImpl_unregisterProxiedComponent * TYPE: native method * Class: ais_amf_ComponentRegistry * Method: unregisterProxiedComponent * Signature: (Ljava/lang/String;)V *************************************************************************/ JNIEXPORT void JNICALL Java_org_opensaf_ais_amf_ComponentRegistryImpl_unregisterProxiedComponent( JNIEnv* jniEnv, jobject thisComponentRegistry, jstring proxiedComponentName ) { SaNameT _saProxyComponentName; SaNameT _saProxiedComponentName; SaNameT* _saProxiedComponentNamePtr = &_saProxiedComponentName; SaAmfHandleT _saAmfHandle; SaAisErrorT _saStatus; // JNI jobject _amfLibraryHandle; jstring _thisComponentName; // BODY assert( thisComponentRegistry != NULL ); _TRACE2( "NATIVE: Executing Java_org_opensaf_ais_amf_ComponentRegistryImpl_unregisterProxiedComponent(...)\n" ); // get Java library handle _amfLibraryHandle = (*jniEnv)->GetObjectField( jniEnv, thisComponentRegistry, FID_amfLibraryHandle ); assert( _amfLibraryHandle != NULL ); // get native library handle _saAmfHandle = (SaAmfHandleT) (*jniEnv)->GetLongField( jniEnv, _amfLibraryHandle, FID_saAmfHandle ); // get Java component name _thisComponentName = (*jniEnv)->GetObjectField( jniEnv, thisComponentRegistry, FID_componentName ); // copy Java component name object if( JNU_copyFromStringToSaNameT_NotNull( jniEnv, _thisComponentName, &_saProxyComponentName ) != JNI_TRUE ){ return; // EXIT POINT! Exception pending... } // copy Java proxied component name object if( JNU_copyFromStringToSaNameT( jniEnv, proxiedComponentName, &_saProxiedComponentNamePtr ) != JNI_TRUE ){ return; // EXIT POINT! Exception pending... } // call saAmfComponentUnregister _saStatus = saAmfComponentUnregister( _saAmfHandle, _saProxiedComponentNamePtr, &_saProxyComponentName ); _TRACE2( "NATIVE: saAmfComponentUnregister(...) has returned with %d...\n", _saStatus ); // error handling if( _saStatus != SA_AIS_OK ){ switch( _saStatus ){ case SA_AIS_ERR_LIBRARY: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisLibraryException", AIS_ERR_LIBRARY_MSG ); break; case SA_AIS_ERR_TIMEOUT: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisTimeoutException", AIS_ERR_TIMEOUT_MSG ); break; case SA_AIS_ERR_TRY_AGAIN: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisTryAgainException", AIS_ERR_TRY_AGAIN_MSG ); break; case SA_AIS_ERR_BAD_HANDLE: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisBadHandleException", AIS_ERR_BAD_HANDLE_MSG ); break; case SA_AIS_ERR_INVALID_PARAM: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisInvalidParamException", AIS_ERR_INVALID_PARAM_MSG ); break; case SA_AIS_ERR_NO_MEMORY: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisNoMemoryException", AIS_ERR_NO_MEMORY_MSG ); break; case SA_AIS_ERR_NO_RESOURCES: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisNoResourcesException", AIS_ERR_NO_RESOURCES_MSG ); break; case SA_AIS_ERR_NOT_EXIST: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisNotExistException", AIS_ERR_NOT_EXIST_MSG ); break; case SA_AIS_ERR_BAD_OPERATION: JNU_throwNewByName( jniEnv, "org/saforum/ais/AisBadOperationException", AIS_ERR_BAD_OPERATION_MSG ); break; default: // this should not happen here! assert( JNI_FALSE ); JNU_throwNewByName( jniEnv, "org/saforum/ais/AisLibraryException", AIS_ERR_LIBRARY_MSG ); break; } return; // EXIT POINT! Exception pending... } _TRACE2( "NATIVE: Java_org_opensaf_ais_amf_ComponentRegistryImpl_unregisterProxiedComponent(...) returning normally\n" ); }