/**********************************************************
 * This file has been automatically created by "typemaker2"
 * from the file "tanmethod.xml".
 * Please do not edit this file, all changes will be lost.
 * Better edit the mentioned source file instead.
 **********************************************************/

#ifndef AH_TAN_METHOD_TANMETHOD_H
#define AH_TAN_METHOD_TANMETHOD_H


#ifdef __cplusplus
extern "C" {
#endif

/** @page P_AH_TAN_METHOD Structure AH_TAN_METHOD
<p>This page describes the properties of AH_TAN_METHOD.</p>



<h1>AH_TAN_METHOD</h1>

This group represents a TAN method within AqHBCI.


@anchor AH_TAN_METHOD_function
<h2>function</h2>

<p>Set this property with @ref AH_TanMethod_SetFunction(), get it with @ref AH_TanMethod_GetFunction().</p>


@anchor AH_TAN_METHOD_process
<h2>process</h2>

<p>Set this property with @ref AH_TanMethod_SetProcess(), get it with @ref AH_TanMethod_GetProcess().</p>


@anchor AH_TAN_METHOD_methodId
<h2>methodId</h2>

<p>Set this property with @ref AH_TanMethod_SetMethodId(), get it with @ref AH_TanMethod_GetMethodId().</p>


@anchor AH_TAN_METHOD_methodName
<h2>methodName</h2>

<p>Set this property with @ref AH_TanMethod_SetMethodName(), get it with @ref AH_TanMethod_GetMethodName().</p>


@anchor AH_TAN_METHOD_zkaTanName
<h2>zkaTanName</h2>

<p>Set this property with @ref AH_TanMethod_SetZkaTanName(), get it with @ref AH_TanMethod_GetZkaTanName().</p>


@anchor AH_TAN_METHOD_zkaTanVersion
<h2>zkaTanVersion</h2>

<p>Set this property with @ref AH_TanMethod_SetZkaTanVersion(), get it with @ref AH_TanMethod_GetZkaTanVersion().</p>


@anchor AH_TAN_METHOD_tanMaxLen
<h2>tanMaxLen</h2>

<p>Set this property with @ref AH_TanMethod_SetTanMaxLen(), get it with @ref AH_TanMethod_GetTanMaxLen().</p>


@anchor AH_TAN_METHOD_formatId
<h2>formatId</h2>

<p>Set this property with @ref AH_TanMethod_SetFormatId(), get it with @ref AH_TanMethod_GetFormatId().</p>


@anchor AH_TAN_METHOD_prompt
<h2>prompt</h2>

<p>Set this property with @ref AH_TanMethod_SetPrompt(), get it with @ref AH_TanMethod_GetPrompt().</p>


@anchor AH_TAN_METHOD_returnMaxLen
<h2>returnMaxLen</h2>

<p>Set this property with @ref AH_TanMethod_SetReturnMaxLen(), get it with @ref AH_TanMethod_GetReturnMaxLen().</p>


@anchor AH_TAN_METHOD_maxActiveLists
<h2>maxActiveLists</h2>

<p>Set this property with @ref AH_TanMethod_SetMaxActiveLists(), get it with @ref AH_TanMethod_GetMaxActiveLists().</p>


@anchor AH_TAN_METHOD_multiTanAllowed
<h2>multiTanAllowed</h2>

<p>Set this property with @ref AH_TanMethod_SetMultiTanAllowed(), get it with @ref AH_TanMethod_GetMultiTanAllowed().</p>


@anchor AH_TAN_METHOD_timeShiftAllowed
<h2>timeShiftAllowed</h2>

<p>Set this property with @ref AH_TanMethod_SetTimeShiftAllowed(), get it with @ref AH_TanMethod_GetTimeShiftAllowed().</p>


@anchor AH_TAN_METHOD_tanListMode
<h2>tanListMode</h2>

<p>Set this property with @ref AH_TanMethod_SetTanListMode(), get it with @ref AH_TanMethod_GetTanListMode().</p>


@anchor AH_TAN_METHOD_stornoAllowed
<h2>stornoAllowed</h2>

<p>Set this property with @ref AH_TanMethod_SetStornoAllowed(), get it with @ref AH_TanMethod_GetStornoAllowed().</p>


@anchor AH_TAN_METHOD_needSmsAccount
<h2>needSmsAccount</h2>

<p>Set this property with @ref AH_TanMethod_SetNeedSmsAccount(), get it with @ref AH_TanMethod_GetNeedSmsAccount().</p>


@anchor AH_TAN_METHOD_needLocalAccount
<h2>needLocalAccount</h2>

<p>Set this property with @ref AH_TanMethod_SetNeedLocalAccount(), get it with @ref AH_TanMethod_GetNeedLocalAccount().</p>


@anchor AH_TAN_METHOD_needChallengeClass
<h2>needChallengeClass</h2>

<p>Set this property with @ref AH_TanMethod_SetNeedChallengeClass(), get it with @ref AH_TanMethod_GetNeedChallengeClass().</p>


@anchor AH_TAN_METHOD_needChallengeAmount
<h2>needChallengeAmount</h2>

<p>Set this property with @ref AH_TanMethod_SetNeedChallengeAmount(), get it with @ref AH_TanMethod_GetNeedChallengeAmount().</p>


@anchor AH_TAN_METHOD_challengeIsStructured
<h2>challengeIsStructured</h2>

<p>Set this property with @ref AH_TanMethod_SetChallengeIsStructured(), get it with @ref AH_TanMethod_GetChallengeIsStructured().</p>


@anchor AH_TAN_METHOD_initMode
<h2>initMode</h2>

<p>Set this property with @ref AH_TanMethod_SetInitMode(), get it with @ref AH_TanMethod_GetInitMode().</p>


@anchor AH_TAN_METHOD_needTanMediumId
<h2>needTanMediumId</h2>

<p>Set this property with @ref AH_TanMethod_SetNeedTanMediumId(), get it with @ref AH_TanMethod_GetNeedTanMediumId().</p>


@anchor AH_TAN_METHOD_maxActiveTanMedia
<h2>maxActiveTanMedia</h2>

<p>Set this property with @ref AH_TanMethod_SetMaxActiveTanMedia(), get it with @ref AH_TanMethod_GetMaxActiveTanMedia().</p>


@anchor AH_TAN_METHOD_gvVersion
<h2>gvVersion</h2>

<p>Set this property with @ref AH_TanMethod_SetGvVersion(), get it with @ref AH_TanMethod_GetGvVersion().</p>

*/

/* needed system headers */
#include <gwenhywfar/types.h>
#include <gwenhywfar/list1.h>
#include <gwenhywfar/list2.h>
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/db.h>

/* pre-headers */
#include "aqhbci/aqhbci.h"

typedef struct AH_TAN_METHOD AH_TAN_METHOD;
GWEN_LIST_FUNCTION_LIB_DEFS(AH_TAN_METHOD, AH_TanMethod, AQHBCI_API)
GWEN_LIST2_FUNCTION_LIB_DEFS(AH_TAN_METHOD, AH_TanMethod, AQHBCI_API)
GWEN_INHERIT_FUNCTION_LIB_DEFS(AH_TAN_METHOD, AQHBCI_API)



/* post-headers */


/** Constructor. */
AQHBCI_API AH_TAN_METHOD *AH_TanMethod_new(void);

/** Destructor. */
AQHBCI_API void AH_TanMethod_free(AH_TAN_METHOD *p_struct);

AQHBCI_API void AH_TanMethod_Attach(AH_TAN_METHOD *p_struct);

AQHBCI_API AH_TAN_METHOD *AH_TanMethod_dup(const AH_TAN_METHOD *p_src);

AQHBCI_API AH_TAN_METHOD *AH_TanMethod_copy(AH_TAN_METHOD *p_struct, const AH_TAN_METHOD *p_src);

/** Getter.
 * Use this function to get the member "function" (see @ref AH_TAN_METHOD_function)
*/
AQHBCI_API int AH_TanMethod_GetFunction(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "process" (see @ref AH_TAN_METHOD_process)
*/
AQHBCI_API int AH_TanMethod_GetProcess(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "methodId" (see @ref AH_TAN_METHOD_methodId)
*/
AQHBCI_API const char *AH_TanMethod_GetMethodId(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "methodName" (see @ref AH_TAN_METHOD_methodName)
*/
AQHBCI_API const char *AH_TanMethod_GetMethodName(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "zkaTanName" (see @ref AH_TAN_METHOD_zkaTanName)
*/
AQHBCI_API const char *AH_TanMethod_GetZkaTanName(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "zkaTanVersion" (see @ref AH_TAN_METHOD_zkaTanVersion)
*/
AQHBCI_API const char *AH_TanMethod_GetZkaTanVersion(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "tanMaxLen" (see @ref AH_TAN_METHOD_tanMaxLen)
*/
AQHBCI_API int AH_TanMethod_GetTanMaxLen(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "formatId" (see @ref AH_TAN_METHOD_formatId)
*/
AQHBCI_API const char *AH_TanMethod_GetFormatId(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "prompt" (see @ref AH_TAN_METHOD_prompt)
*/
AQHBCI_API const char *AH_TanMethod_GetPrompt(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "returnMaxLen" (see @ref AH_TAN_METHOD_returnMaxLen)
*/
AQHBCI_API int AH_TanMethod_GetReturnMaxLen(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "maxActiveLists" (see @ref AH_TAN_METHOD_maxActiveLists)
*/
AQHBCI_API int AH_TanMethod_GetMaxActiveLists(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "multiTanAllowed" (see @ref AH_TAN_METHOD_multiTanAllowed)
*/
AQHBCI_API int AH_TanMethod_GetMultiTanAllowed(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "timeShiftAllowed" (see @ref AH_TAN_METHOD_timeShiftAllowed)
*/
AQHBCI_API int AH_TanMethod_GetTimeShiftAllowed(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "tanListMode" (see @ref AH_TAN_METHOD_tanListMode)
*/
AQHBCI_API int AH_TanMethod_GetTanListMode(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "stornoAllowed" (see @ref AH_TAN_METHOD_stornoAllowed)
*/
AQHBCI_API int AH_TanMethod_GetStornoAllowed(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "needSmsAccount" (see @ref AH_TAN_METHOD_needSmsAccount)
*/
AQHBCI_API int AH_TanMethod_GetNeedSmsAccount(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "needLocalAccount" (see @ref AH_TAN_METHOD_needLocalAccount)
*/
AQHBCI_API int AH_TanMethod_GetNeedLocalAccount(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "needChallengeClass" (see @ref AH_TAN_METHOD_needChallengeClass)
*/
AQHBCI_API int AH_TanMethod_GetNeedChallengeClass(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "needChallengeAmount" (see @ref AH_TAN_METHOD_needChallengeAmount)
*/
AQHBCI_API int AH_TanMethod_GetNeedChallengeAmount(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "challengeIsStructured" (see @ref AH_TAN_METHOD_challengeIsStructured)
*/
AQHBCI_API int AH_TanMethod_GetChallengeIsStructured(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "initMode" (see @ref AH_TAN_METHOD_initMode)
*/
AQHBCI_API int AH_TanMethod_GetInitMode(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "needTanMediumId" (see @ref AH_TAN_METHOD_needTanMediumId)
*/
AQHBCI_API int AH_TanMethod_GetNeedTanMediumId(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "maxActiveTanMedia" (see @ref AH_TAN_METHOD_maxActiveTanMedia)
*/
AQHBCI_API int AH_TanMethod_GetMaxActiveTanMedia(const AH_TAN_METHOD *p_struct);

/** Getter.
 * Use this function to get the member "gvVersion" (see @ref AH_TAN_METHOD_gvVersion)
*/
AQHBCI_API int AH_TanMethod_GetGvVersion(const AH_TAN_METHOD *p_struct);

/** Setter.
 * Use this function to set the member "function" (see @ref AH_TAN_METHOD_function)
*/
AQHBCI_API void AH_TanMethod_SetFunction(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "process" (see @ref AH_TAN_METHOD_process)
*/
AQHBCI_API void AH_TanMethod_SetProcess(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "methodId" (see @ref AH_TAN_METHOD_methodId)
*/
AQHBCI_API void AH_TanMethod_SetMethodId(AH_TAN_METHOD *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "methodName" (see @ref AH_TAN_METHOD_methodName)
*/
AQHBCI_API void AH_TanMethod_SetMethodName(AH_TAN_METHOD *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "zkaTanName" (see @ref AH_TAN_METHOD_zkaTanName)
*/
AQHBCI_API void AH_TanMethod_SetZkaTanName(AH_TAN_METHOD *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "zkaTanVersion" (see @ref AH_TAN_METHOD_zkaTanVersion)
*/
AQHBCI_API void AH_TanMethod_SetZkaTanVersion(AH_TAN_METHOD *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "tanMaxLen" (see @ref AH_TAN_METHOD_tanMaxLen)
*/
AQHBCI_API void AH_TanMethod_SetTanMaxLen(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "formatId" (see @ref AH_TAN_METHOD_formatId)
*/
AQHBCI_API void AH_TanMethod_SetFormatId(AH_TAN_METHOD *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "prompt" (see @ref AH_TAN_METHOD_prompt)
*/
AQHBCI_API void AH_TanMethod_SetPrompt(AH_TAN_METHOD *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "returnMaxLen" (see @ref AH_TAN_METHOD_returnMaxLen)
*/
AQHBCI_API void AH_TanMethod_SetReturnMaxLen(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "maxActiveLists" (see @ref AH_TAN_METHOD_maxActiveLists)
*/
AQHBCI_API void AH_TanMethod_SetMaxActiveLists(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "multiTanAllowed" (see @ref AH_TAN_METHOD_multiTanAllowed)
*/
AQHBCI_API void AH_TanMethod_SetMultiTanAllowed(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "timeShiftAllowed" (see @ref AH_TAN_METHOD_timeShiftAllowed)
*/
AQHBCI_API void AH_TanMethod_SetTimeShiftAllowed(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "tanListMode" (see @ref AH_TAN_METHOD_tanListMode)
*/
AQHBCI_API void AH_TanMethod_SetTanListMode(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "stornoAllowed" (see @ref AH_TAN_METHOD_stornoAllowed)
*/
AQHBCI_API void AH_TanMethod_SetStornoAllowed(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "needSmsAccount" (see @ref AH_TAN_METHOD_needSmsAccount)
*/
AQHBCI_API void AH_TanMethod_SetNeedSmsAccount(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "needLocalAccount" (see @ref AH_TAN_METHOD_needLocalAccount)
*/
AQHBCI_API void AH_TanMethod_SetNeedLocalAccount(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "needChallengeClass" (see @ref AH_TAN_METHOD_needChallengeClass)
*/
AQHBCI_API void AH_TanMethod_SetNeedChallengeClass(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "needChallengeAmount" (see @ref AH_TAN_METHOD_needChallengeAmount)
*/
AQHBCI_API void AH_TanMethod_SetNeedChallengeAmount(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "challengeIsStructured" (see @ref AH_TAN_METHOD_challengeIsStructured)
*/
AQHBCI_API void AH_TanMethod_SetChallengeIsStructured(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "initMode" (see @ref AH_TAN_METHOD_initMode)
*/
AQHBCI_API void AH_TanMethod_SetInitMode(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "needTanMediumId" (see @ref AH_TAN_METHOD_needTanMediumId)
*/
AQHBCI_API void AH_TanMethod_SetNeedTanMediumId(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "maxActiveTanMedia" (see @ref AH_TAN_METHOD_maxActiveTanMedia)
*/
AQHBCI_API void AH_TanMethod_SetMaxActiveTanMedia(AH_TAN_METHOD *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "gvVersion" (see @ref AH_TAN_METHOD_gvVersion)
*/
AQHBCI_API void AH_TanMethod_SetGvVersion(AH_TAN_METHOD *p_struct, int p_src);

AQHBCI_API AH_TAN_METHOD_LIST *AH_TanMethod_List_dup(const AH_TAN_METHOD_LIST *p_src);

AQHBCI_API void AH_TanMethod_ReadDb(AH_TAN_METHOD *p_struct, GWEN_DB_NODE *p_db);

AQHBCI_API int AH_TanMethod_WriteDb(const AH_TAN_METHOD *p_struct, GWEN_DB_NODE *p_db);

AQHBCI_API AH_TAN_METHOD *AH_TanMethod_fromDb(GWEN_DB_NODE *p_db);

AQHBCI_API int AH_TanMethod_toDb(const AH_TAN_METHOD *p_struct, GWEN_DB_NODE *p_db);



#ifdef __cplusplus
}
#endif

#endif

