/* This file is auto-generated from "tanmethod.xml" by the typemaker
   tool of Gwenhywfar. 
   Do not edit this file -- all changes will be lost! */
#ifndef TANMETHOD_H
#define TANMETHOD_H

/** @page P_AH_TAN_METHOD_PUBLIC AH_TanMethod (public)
This page describes the properties of AH_TAN_METHOD
This group represents a TAN method within AqHBCI.
@anchor AH_TAN_METHOD_Function
<h3>Function</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetFunction, 
get it with @ref AH_TanMethod_GetFunction
</p>

@anchor AH_TAN_METHOD_Process
<h3>Process</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetProcess, 
get it with @ref AH_TanMethod_GetProcess
</p>

@anchor AH_TAN_METHOD_MethodId
<h3>MethodId</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetMethodId, 
get it with @ref AH_TanMethod_GetMethodId
</p>

@anchor AH_TAN_METHOD_MethodName
<h3>MethodName</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetMethodName, 
get it with @ref AH_TanMethod_GetMethodName
</p>

@anchor AH_TAN_METHOD_ZkaTanName
<h3>ZkaTanName</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetZkaTanName, 
get it with @ref AH_TanMethod_GetZkaTanName
</p>

@anchor AH_TAN_METHOD_ZkaTanVersion
<h3>ZkaTanVersion</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetZkaTanVersion, 
get it with @ref AH_TanMethod_GetZkaTanVersion
</p>

@anchor AH_TAN_METHOD_TanMaxLen
<h3>TanMaxLen</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetTanMaxLen, 
get it with @ref AH_TanMethod_GetTanMaxLen
</p>

@anchor AH_TAN_METHOD_FormatId
<h3>FormatId</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetFormatId, 
get it with @ref AH_TanMethod_GetFormatId
</p>

@anchor AH_TAN_METHOD_Prompt
<h3>Prompt</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetPrompt, 
get it with @ref AH_TanMethod_GetPrompt
</p>

@anchor AH_TAN_METHOD_ReturnMaxLen
<h3>ReturnMaxLen</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetReturnMaxLen, 
get it with @ref AH_TanMethod_GetReturnMaxLen
</p>

@anchor AH_TAN_METHOD_MaxActiveLists
<h3>MaxActiveLists</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetMaxActiveLists, 
get it with @ref AH_TanMethod_GetMaxActiveLists
</p>

@anchor AH_TAN_METHOD_MultiTanAllowed
<h3>MultiTanAllowed</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetMultiTanAllowed, 
get it with @ref AH_TanMethod_GetMultiTanAllowed
</p>

@anchor AH_TAN_METHOD_TimeShiftAllowed
<h3>TimeShiftAllowed</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetTimeShiftAllowed, 
get it with @ref AH_TanMethod_GetTimeShiftAllowed
</p>

@anchor AH_TAN_METHOD_TanListMode
<h3>TanListMode</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetTanListMode, 
get it with @ref AH_TanMethod_GetTanListMode
</p>

@anchor AH_TAN_METHOD_StornoAllowed
<h3>StornoAllowed</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetStornoAllowed, 
get it with @ref AH_TanMethod_GetStornoAllowed
</p>

@anchor AH_TAN_METHOD_NeedSmsAccount
<h3>NeedSmsAccount</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetNeedSmsAccount, 
get it with @ref AH_TanMethod_GetNeedSmsAccount
</p>

@anchor AH_TAN_METHOD_NeedLocalAccount
<h3>NeedLocalAccount</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetNeedLocalAccount, 
get it with @ref AH_TanMethod_GetNeedLocalAccount
</p>

@anchor AH_TAN_METHOD_NeedChallengeClass
<h3>NeedChallengeClass</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetNeedChallengeClass, 
get it with @ref AH_TanMethod_GetNeedChallengeClass
</p>

@anchor AH_TAN_METHOD_NeedChallengeAmount
<h3>NeedChallengeAmount</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetNeedChallengeAmount, 
get it with @ref AH_TanMethod_GetNeedChallengeAmount
</p>

@anchor AH_TAN_METHOD_ChallengeIsStructured
<h3>ChallengeIsStructured</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetChallengeIsStructured, 
get it with @ref AH_TanMethod_GetChallengeIsStructured
</p>

@anchor AH_TAN_METHOD_InitMode
<h3>InitMode</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetInitMode, 
get it with @ref AH_TanMethod_GetInitMode
</p>

@anchor AH_TAN_METHOD_NeedTanMediumId
<h3>NeedTanMediumId</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetNeedTanMediumId, 
get it with @ref AH_TanMethod_GetNeedTanMediumId
</p>

@anchor AH_TAN_METHOD_MaxActiveTanMedia
<h3>MaxActiveTanMedia</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetMaxActiveTanMedia, 
get it with @ref AH_TanMethod_GetMaxActiveTanMedia
</p>

@anchor AH_TAN_METHOD_GvVersion
<h3>GvVersion</h3>
<p>
</p>
<p>
Set this property with @ref AH_TanMethod_SetGvVersion, 
get it with @ref AH_TanMethod_GetGvVersion
</p>

*/
#ifdef __cplusplus
extern "C" {
#endif

typedef struct AH_TAN_METHOD AH_TAN_METHOD;

#ifdef __cplusplus
} /* __cplusplus */
#endif

#include <gwenhywfar/db.h>
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/list2.h>
/* pre-headers */
#include <aqhbci/aqhbci.h>

#ifdef __cplusplus
extern "C" {
#endif


GWEN_INHERIT_FUNCTION_LIB_DEFS(AH_TAN_METHOD, AQHBCI_API)
GWEN_LIST_FUNCTION_LIB_DEFS(AH_TAN_METHOD, AH_TanMethod, AQHBCI_API)
AQHBCI_API AH_TAN_METHOD_LIST *AH_TanMethod_List_dup(const AH_TAN_METHOD_LIST *stl);

GWEN_LIST2_FUNCTION_LIB_DEFS(AH_TAN_METHOD, AH_TanMethod, AQHBCI_API)

/** Destroys all objects stored in the given LIST2 and the list itself
*/
AQHBCI_API void AH_TanMethod_List2_freeAll(AH_TAN_METHOD_LIST2 *stl);

/** Creates a new object.
*/
AQHBCI_API AH_TAN_METHOD *AH_TanMethod_new();
/** Creates an object from the data in the given GWEN_DB_NODE
*/
AQHBCI_API AH_TAN_METHOD *AH_TanMethod_fromDb(GWEN_DB_NODE *db);
/** Creates and returns a deep copy of thegiven object.
*/
AQHBCI_API AH_TAN_METHOD *AH_TanMethod_dup(const AH_TAN_METHOD*st);
/** Destroys the given object.
*/
AQHBCI_API void AH_TanMethod_free(AH_TAN_METHOD *st);
/** Increments the usage counter of the given object, so an additional free() is needed to destroy the object.
*/
AQHBCI_API void AH_TanMethod_Attach(AH_TAN_METHOD *st);
/** Reads data from a GWEN_DB.
*/
AQHBCI_API int AH_TanMethod_ReadDb(AH_TAN_METHOD *st, GWEN_DB_NODE *db);
/** Stores an object in the given GWEN_DB_NODE
*/
AQHBCI_API int AH_TanMethod_toDb(const AH_TAN_METHOD*st, GWEN_DB_NODE *db);
/** Returns 0 if this object has not been modified, !=0 otherwise
*/
AQHBCI_API int AH_TanMethod_IsModified(const AH_TAN_METHOD *st);
/** Sets the modified state of the given object
*/
AQHBCI_API void AH_TanMethod_SetModified(AH_TAN_METHOD *st, int i);


/**
* Returns the property @ref AH_TAN_METHOD_Function
*/
AQHBCI_API int AH_TanMethod_GetFunction(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_Function
*/
AQHBCI_API void AH_TanMethod_SetFunction(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_Process
*/
AQHBCI_API int AH_TanMethod_GetProcess(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_Process
*/
AQHBCI_API void AH_TanMethod_SetProcess(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_MethodId
*/
AQHBCI_API const char *AH_TanMethod_GetMethodId(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_MethodId
*/
AQHBCI_API void AH_TanMethod_SetMethodId(AH_TAN_METHOD *el, const char *d);

/**
* Returns the property @ref AH_TAN_METHOD_MethodName
*/
AQHBCI_API const char *AH_TanMethod_GetMethodName(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_MethodName
*/
AQHBCI_API void AH_TanMethod_SetMethodName(AH_TAN_METHOD *el, const char *d);

/**
* Returns the property @ref AH_TAN_METHOD_ZkaTanName
*/
AQHBCI_API const char *AH_TanMethod_GetZkaTanName(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_ZkaTanName
*/
AQHBCI_API void AH_TanMethod_SetZkaTanName(AH_TAN_METHOD *el, const char *d);

/**
* Returns the property @ref AH_TAN_METHOD_ZkaTanVersion
*/
AQHBCI_API const char *AH_TanMethod_GetZkaTanVersion(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_ZkaTanVersion
*/
AQHBCI_API void AH_TanMethod_SetZkaTanVersion(AH_TAN_METHOD *el, const char *d);

/**
* Returns the property @ref AH_TAN_METHOD_TanMaxLen
*/
AQHBCI_API int AH_TanMethod_GetTanMaxLen(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_TanMaxLen
*/
AQHBCI_API void AH_TanMethod_SetTanMaxLen(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_FormatId
*/
AQHBCI_API const char *AH_TanMethod_GetFormatId(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_FormatId
*/
AQHBCI_API void AH_TanMethod_SetFormatId(AH_TAN_METHOD *el, const char *d);

/**
* Returns the property @ref AH_TAN_METHOD_Prompt
*/
AQHBCI_API const char *AH_TanMethod_GetPrompt(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_Prompt
*/
AQHBCI_API void AH_TanMethod_SetPrompt(AH_TAN_METHOD *el, const char *d);

/**
* Returns the property @ref AH_TAN_METHOD_ReturnMaxLen
*/
AQHBCI_API int AH_TanMethod_GetReturnMaxLen(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_ReturnMaxLen
*/
AQHBCI_API void AH_TanMethod_SetReturnMaxLen(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_MaxActiveLists
*/
AQHBCI_API int AH_TanMethod_GetMaxActiveLists(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_MaxActiveLists
*/
AQHBCI_API void AH_TanMethod_SetMaxActiveLists(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_MultiTanAllowed
*/
AQHBCI_API int AH_TanMethod_GetMultiTanAllowed(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_MultiTanAllowed
*/
AQHBCI_API void AH_TanMethod_SetMultiTanAllowed(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_TimeShiftAllowed
*/
AQHBCI_API int AH_TanMethod_GetTimeShiftAllowed(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_TimeShiftAllowed
*/
AQHBCI_API void AH_TanMethod_SetTimeShiftAllowed(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_TanListMode
*/
AQHBCI_API int AH_TanMethod_GetTanListMode(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_TanListMode
*/
AQHBCI_API void AH_TanMethod_SetTanListMode(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_StornoAllowed
*/
AQHBCI_API int AH_TanMethod_GetStornoAllowed(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_StornoAllowed
*/
AQHBCI_API void AH_TanMethod_SetStornoAllowed(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_NeedSmsAccount
*/
AQHBCI_API int AH_TanMethod_GetNeedSmsAccount(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_NeedSmsAccount
*/
AQHBCI_API void AH_TanMethod_SetNeedSmsAccount(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_NeedLocalAccount
*/
AQHBCI_API int AH_TanMethod_GetNeedLocalAccount(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_NeedLocalAccount
*/
AQHBCI_API void AH_TanMethod_SetNeedLocalAccount(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_NeedChallengeClass
*/
AQHBCI_API int AH_TanMethod_GetNeedChallengeClass(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_NeedChallengeClass
*/
AQHBCI_API void AH_TanMethod_SetNeedChallengeClass(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_NeedChallengeAmount
*/
AQHBCI_API int AH_TanMethod_GetNeedChallengeAmount(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_NeedChallengeAmount
*/
AQHBCI_API void AH_TanMethod_SetNeedChallengeAmount(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_ChallengeIsStructured
*/
AQHBCI_API int AH_TanMethod_GetChallengeIsStructured(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_ChallengeIsStructured
*/
AQHBCI_API void AH_TanMethod_SetChallengeIsStructured(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_InitMode
*/
AQHBCI_API int AH_TanMethod_GetInitMode(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_InitMode
*/
AQHBCI_API void AH_TanMethod_SetInitMode(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_NeedTanMediumId
*/
AQHBCI_API int AH_TanMethod_GetNeedTanMediumId(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_NeedTanMediumId
*/
AQHBCI_API void AH_TanMethod_SetNeedTanMediumId(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_MaxActiveTanMedia
*/
AQHBCI_API int AH_TanMethod_GetMaxActiveTanMedia(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_MaxActiveTanMedia
*/
AQHBCI_API void AH_TanMethod_SetMaxActiveTanMedia(AH_TAN_METHOD *el, int d);

/**
* Returns the property @ref AH_TAN_METHOD_GvVersion
*/
AQHBCI_API int AH_TanMethod_GetGvVersion(const AH_TAN_METHOD *el);
/**
* Set the property @ref AH_TAN_METHOD_GvVersion
*/
AQHBCI_API void AH_TanMethod_SetGvVersion(AH_TAN_METHOD *el, int d);


#ifdef __cplusplus
} /* __cplusplus */
#endif


#endif /* TANMETHOD_H */
