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

#ifndef AB_ACCOUNTQUEUE_ACCOUNTQUEUE_H
#define AB_ACCOUNTQUEUE_ACCOUNTQUEUE_H


#ifdef __cplusplus
extern "C" {
#endif

/** @page P_AB_ACCOUNTQUEUE Structure AB_ACCOUNTQUEUE
<p>This page describes the properties of AB_ACCOUNTQUEUE.</p>



<h1>AB_ACCOUNTQUEUE</h1>



@anchor AB_ACCOUNTQUEUE_accountId
<h2>accountId</h2>

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


@anchor AB_ACCOUNTQUEUE_account
<h2>account</h2>

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


@anchor AB_ACCOUNTQUEUE_accountSpec
<h2>accountSpec</h2>

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


@anchor AB_ACCOUNTQUEUE_transactionList
<h2>transactionList</h2>

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


@anchor AB_ACCOUNTQUEUE_jobQueueList
<h2>jobQueueList</h2>

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

*/

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

/* pre-headers */
#include <aqbanking/error.h>

typedef struct AB_ACCOUNTQUEUE AB_ACCOUNTQUEUE;
GWEN_LIST_FUNCTION_DEFS(AB_ACCOUNTQUEUE, AB_AccountQueue)
GWEN_INHERIT_FUNCTION_DEFS(AB_ACCOUNTQUEUE)



/* post-headers */
#include <aqbanking/types/account_spec.h>
#include <aqbanking/backendsupport/account.h>
#include <aqbanking/backendsupport/jobqueue.h>
#include <aqbanking/types/transaction.h>


/** Constructor. */
AB_ACCOUNTQUEUE *AB_AccountQueue_new(void);

/** Destructor. */
void AB_AccountQueue_free(AB_ACCOUNTQUEUE *p_struct);

void AB_AccountQueue_Attach(AB_ACCOUNTQUEUE *p_struct);

AB_ACCOUNTQUEUE *AB_AccountQueue_dup(const AB_ACCOUNTQUEUE *p_src);

/** Getter.
 * Use this function to get the member "accountId" (see @ref AB_ACCOUNTQUEUE_accountId)
*/
uint32_t AB_AccountQueue_GetAccountId(const AB_ACCOUNTQUEUE *p_struct);

/** Getter.
 * Use this function to get the member "account" (see @ref AB_ACCOUNTQUEUE_account)
*/
AB_ACCOUNT *AB_AccountQueue_GetAccount(const AB_ACCOUNTQUEUE *p_struct);

/** Getter.
 * Use this function to get the member "accountSpec" (see @ref AB_ACCOUNTQUEUE_accountSpec)
*/
AB_ACCOUNT_SPEC *AB_AccountQueue_GetAccountSpec(const AB_ACCOUNTQUEUE *p_struct);

/** Getter.
 * Use this function to get the member "transactionList" (see @ref AB_ACCOUNTQUEUE_transactionList)
*/
AB_TRANSACTION_LIST2 *AB_AccountQueue_GetTransactionList(const AB_ACCOUNTQUEUE *p_struct);

/** Getter.
 * Use this function to get the member "jobQueueList" (see @ref AB_ACCOUNTQUEUE_jobQueueList)
*/
AB_JOBQUEUE_LIST *AB_AccountQueue_GetJobQueueList(const AB_ACCOUNTQUEUE *p_struct);

/** Setter.
 * Use this function to set the member "accountId" (see @ref AB_ACCOUNTQUEUE_accountId)
*/
void AB_AccountQueue_SetAccountId(AB_ACCOUNTQUEUE *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "account" (see @ref AB_ACCOUNTQUEUE_account)
*/
void AB_AccountQueue_SetAccount(AB_ACCOUNTQUEUE *p_struct, AB_ACCOUNT *p_src);

/** Setter.
 * Use this function to set the member "accountSpec" (see @ref AB_ACCOUNTQUEUE_accountSpec)
*/
void AB_AccountQueue_SetAccountSpec(AB_ACCOUNTQUEUE *p_struct, AB_ACCOUNT_SPEC *p_src);

/** Setter.
 * Use this function to set the member "transactionList" (see @ref AB_ACCOUNTQUEUE_transactionList)
*/
void AB_AccountQueue_SetTransactionList(AB_ACCOUNTQUEUE *p_struct, AB_TRANSACTION_LIST2 *p_src);

/** Setter.
 * Use this function to set the member "jobQueueList" (see @ref AB_ACCOUNTQUEUE_jobQueueList)
*/
void AB_AccountQueue_SetJobQueueList(AB_ACCOUNTQUEUE *p_struct, AB_JOBQUEUE_LIST *p_src);

AB_ACCOUNTQUEUE_LIST *AB_AccountQueue_List_dup(const AB_ACCOUNTQUEUE_LIST *p_src);

AB_ACCOUNTQUEUE *AB_AccountQueue_List_GetByAccountId(const AB_ACCOUNTQUEUE_LIST *p_list, uint32_t p_cmp);

 void AB_AccountQueue_AddTransaction(AB_ACCOUNTQUEUE *aq, AB_TRANSACTION *t);
 AB_JOBQUEUE *AB_AccountQueue_FindJobQueue(const AB_ACCOUNTQUEUE *uq, int cmd);
 void AB_AccountQueue_AddJobQueue(AB_ACCOUNTQUEUE *up, AB_JOBQUEUE *aq);
 AB_JOBQUEUE *AB_AccountQueue_GetFirstJobQueue(const AB_ACCOUNTQUEUE *up);


#ifdef __cplusplus
}
#endif

#endif

