Add wrappers to IMC/IMV managers loading IMC/IMVs from function pointers

This commit is contained in:
Martin Willi
2012-11-30 15:48:20 +01:00
parent be18ee8123
commit 016d343a50
4 changed files with 113 additions and 3 deletions
+25 -1
View File
@@ -55,7 +55,31 @@ struct imc_manager_t {
* @param path path of the IMC dynamic library file
* @return TRUE if loading succeeded
*/
bool (*load)(imc_manager_t *this, char *name, char *path);
bool (*load)(imc_manager_t *this, char *name, char *path);
/**
* Load and initialize an IMC from a set of TNC IMC functions.
*
* @param name name of the IMC
* @param initialize TNC_IMC_InitializePointer
* @param notify_connection_change TNC_IMC_NotifyConnectionChangePointer
* @param begin_handshake TNC_IMC_BeginHandshakePointer
* @param receive_message TNC_IMC_ReceiveMessagePointer
* @param receive_message_long TNC_IMC_ReceiveMessageLongPointer
* @param batch_ending TNC_IMC_BatchEndingPointer
* @param terminate TNC_IMC_TerminatePointer
* @param provide_bind_function TNC_IMC_ProvideBindFunctionPointer
* @return TRUE if loading succeeded
*/
bool (*load_from_functions)(imc_manager_t *this, char *name,
TNC_IMC_InitializePointer initialize,
TNC_IMC_NotifyConnectionChangePointer notify_connection_change,
TNC_IMC_BeginHandshakePointer begin_handshake,
TNC_IMC_ReceiveMessagePointer receive_message,
TNC_IMC_ReceiveMessageLongPointer receive_message_long,
TNC_IMC_BatchEndingPointer batch_ending,
TNC_IMC_TerminatePointer terminate,
TNC_IMC_ProvideBindFunctionPointer provide_bind_function);
/**
* Check if an IMC with a given ID is registered with the IMC manager
+24 -1
View File
@@ -56,8 +56,31 @@ struct imv_manager_t {
* @param path path of the IMV dynamic library file
* @return TRUE if loading succeeded
*/
bool (*load)(imv_manager_t *this, char *name, char *path);
bool (*load)(imv_manager_t *this, char *name, char *path);
/**
* Load and initialize an IMV from a set of TNC IMC functions.
*
* @param name name of the IMV
* @param initialize TNC_IMV_InitializePointer
* @param notify_connection_change TNC_IMV_NotifyConnectionChangePointer
* @param receive_message TNC_IMV_ReceiveMessagePointer
* @param receive_message_long TNC_IMV_ReceiveMessageLongPointer
* @param solicit_recommendation TNC_IMV_SolicitRecommendationPointer
* @param batch_ending TNC_IMV_BatchEndingPointer
* @param terminate TNC_IMV_TerminatePointer
* @param provide_bind_function TNC_IMV_ProvideBindFunctionPointer
* @return TRUE if loading succeeded
*/
bool (*load_from_functions)(imv_manager_t *this, char *name,
TNC_IMV_InitializePointer initialize,
TNC_IMV_NotifyConnectionChangePointer notify_connection_change,
TNC_IMV_ReceiveMessagePointer receive_message,
TNC_IMV_ReceiveMessageLongPointer receive_message_long,
TNC_IMV_SolicitRecommendationPointer solicit_recommendation,
TNC_IMV_BatchEndingPointer batch_ending,
TNC_IMV_TerminatePointer terminate,
TNC_IMV_ProvideBindFunctionPointer provide_bind_function);
/**
* Check if an IMV with a given ID is registered with the IMV manager