eapol/eapol_framework/eapol_common/am/include/eap_am_fast_pac_store_services.h
changeset 0 c8830336c852
child 2 1c7bc153c08e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eapol/eapol_framework/eapol_common/am/include/eap_am_fast_pac_store_services.h	Thu Dec 17 08:47:43 2009 +0200
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2001-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  EAP and WLAN authentication protocols.
+*
+*/
+
+
+
+
+#if !defined(_EAP_AM_FAST_PAC_STORE_SERVICES_H_)
+#define _EAP_AM_FAST_PAC_STORE_SERVICES_H_
+
+#if defined(USE_FAST_EAP_TYPE)
+
+#include "eap_am_export.h"
+#include "eap_tools.h"
+#include "eap_fast_pac_store_types.h"
+#include "eap_fast_tlv_header.h"
+
+class eap_variable_data_c;
+class eap_fast_variable_data_c;
+class abs_eap_state_notification_c;
+
+/** @file */
+
+//----------------------------------------------------------------------------
+
+/// This class defines PAC TLV.
+/**
+ * PAC TLV is constructed with Attribute-Value Pairs.
+ */
+class EAP_EXPORT eap_am_fast_pac_store_services_c
+{
+private:
+	//--------------------------------------------------
+
+	//--------------------------------------------------
+public:
+	//--------------------------------------------------
+
+	virtual ~eap_am_fast_pac_store_services_c() {}
+
+	/**
+	 * Function queries user the permission for A-ID.
+	 * This function is completed by complete_query_user_permission_for_A_ID() function call.
+	 */
+	virtual eap_status_e query_user_permission_for_A_ID(
+		const eap_fast_pac_store_pending_operation_e in_pending_operation,
+		const eap_fast_variable_data_c * const in_pac_attribute_A_ID_info,
+		const eap_fast_variable_data_c * const in_pac_attribute_A_ID) = 0;
+
+	/**
+	 * Function reads the PAC store data referenced by parameter in_references.
+	 * This function is completed by complete_read_PAC_store_data() function call.
+	 */
+	virtual eap_status_e read_PAC_store_data(
+		const eap_fast_pac_store_pending_operation_e in_pending_operation,
+		EAP_TEMPLATE_CONST eap_array_c<eap_fast_pac_store_data_c> * const in_references) = 0;
+
+	/**
+	 * Function writes the PAC store data referenced by parameter in_references_and_data_blocks.
+	 * This function is completed by complete_write_PAC_store_data() function call.
+	 */
+	virtual eap_status_e write_PAC_store_data(
+		const bool when_true_must_be_synchronous_operation,
+		const eap_fast_pac_store_pending_operation_e in_pending_operation,
+		EAP_TEMPLATE_CONST eap_array_c<eap_fast_pac_store_data_c> * const in_references_and_data_blocks) = 0;
+
+	/**
+	 * Function completes the add_PAC_TLV() function call.
+	 */
+	virtual eap_status_e complete_add_PAC_TLV(
+		const eap_status_e in_completion_status,
+		const eap_fast_completion_operation_e in_completion_operation,
+		EAP_TEMPLATE_CONST eap_array_c<eap_fast_pac_type_e> * const in_saved_pac_types) = 0;
+
+	/**
+	 * This function call removes cached PAC store data.
+	 */
+	virtual eap_status_e remove_cached_pac_store_data() = 0;
+
+	/**
+	 * Function completes the add_imported_PAC_file() function call.
+	 */
+	virtual eap_status_e complete_add_imported_PAC_file(
+		const eap_status_e in_completion_status,
+		const eap_variable_data_c * const in_imported_PAC_filename,
+		const eap_variable_data_c * const out_used_group_reference) = 0;
+
+	/**
+	 * Function completes the query_PACs() function call.
+	 */
+	virtual eap_status_e complete_query_PACs(
+		const eap_status_e in_completion_status,
+		EAP_TEMPLATE_CONST eap_array_c<eap_fast_variable_data_c> * const out_matched_PACs,
+		const eap_variable_data_c * const out_used_group_reference) = 0;
+
+	/**
+	 * Function completes the remove_PAC() function call.
+	 */
+	virtual eap_status_e complete_remove_PAC(
+		const eap_status_e in_completion_status,
+		const eap_variable_data_c * const out_used_group_reference) = 0;
+
+	/**
+	 * Function completes the remove_IAP_reference() function call.
+	 */
+	virtual eap_status_e complete_remove_IAP_reference(
+		const eap_status_e in_completion_status) = 0;
+
+	/**
+	 * Function cancels all PAC store operations.
+	 */
+	virtual eap_status_e cancel_PAC_store_operations() = 0;
+
+	/**
+	 * The set_session_timeout() function changes the session timeout timer to be elapsed after session_timeout_ms milliseconds.
+	 */
+	virtual eap_status_e set_session_timeout(
+		const u32_t session_timeout_ms) = 0;
+
+	/**
+	 * This is notification of internal state transition.
+	 * This is used for notifications, debugging and protocol testing.
+	 * The primal notifications are eap_state_variable_e::eap_state_authentication_finished_successfully
+	 * and eap_state_variable_e::eap_state_authentication_terminated_unsuccessfully. EAP-type MUST send these
+	 * two notifications to lower layer.
+	 * These two notifications are sent using EAP-protocol layer (eap_protocol_layer_e::eap_protocol_layer_eap).
+	 * See also eap_state_notification_c.
+	 */
+	virtual void state_notification(
+		const abs_eap_state_notification_c * const state) = 0;
+
+	/**
+	 * The read_configure() function reads the configuration data identified
+	 * by the field string of field_length bytes length. Adaptation module must direct
+	 * the query to some persistent store.
+	 * @param field is generic configure string idenfying the required configure data.
+	 * @param field_length is length of the field string.
+	 * @param data is pointer to existing eap_variable_data object.
+	 * 
+	 * EAP-type should store it's parameters to an own database. The own database should be accessed
+	 * through adaptation module of EAP-type. See eap_am_type_tls_peap_simulator_c::type_configure_read.
+	 */
+	virtual eap_status_e read_configure(
+		const eap_configuration_field_c * const field,
+		eap_variable_data_c * const data) = 0;
+
+	//--------------------------------------------------
+}; // class eap_am_fast_pac_store_services_c
+
+
+#endif //#if defined(USE_FAST_EAP_TYPE)
+
+#endif //#if !defined(_EAP_AM_FAST_PAC_STORE_SERVICES_H_)
+
+
+// End.