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

#ifndef AB_SECURITY_SECURITY_H
#define AB_SECURITY_SECURITY_H


#ifdef __cplusplus
extern "C" {
#endif

/** @page P_AB_SECURITY Structure AB_SECURITY
<p>This page describes the properties of AB_SECURITY.</p>



<h1>AB_SECURITY</h1>



@anchor AB_SECURITY_name
<h2>name</h2>

Full name of the security.
<p>Set this property with @ref AB_Security_SetName(), get it with @ref AB_Security_GetName().</p>


@anchor AB_SECURITY_uniqueId
<h2>uniqueId</h2>

Unique id of the security within the namespace.
<p>Set this property with @ref AB_Security_SetUniqueId(), get it with @ref AB_Security_GetUniqueId().</p>


@anchor AB_SECURITY_nameSpace
<h2>nameSpace</h2>

Namespace for uniqueId (e.g. CUSIP for North America)
<p>Set this property with @ref AB_Security_SetNameSpace(), get it with @ref AB_Security_GetNameSpace().</p>


@anchor AB_SECURITY_tickerSymbol
<h2>tickerSymbol</h2>

Ticker symbol of the security.
<p>Set this property with @ref AB_Security_SetTickerSymbol(), get it with @ref AB_Security_GetTickerSymbol().</p>


@anchor AB_SECURITY_units
<h2>units</h2>

Number of units held (e.g. number of stock units etc)
<p>Set this property with @ref AB_Security_SetUnits(), get it with @ref AB_Security_GetUnits().</p>


@anchor AB_SECURITY_unitPriceValue
<h2>unitPriceValue</h2>

Price of a unit as of unitPriceDate.
<p>Set this property with @ref AB_Security_SetUnitPriceValue(), get it with @ref AB_Security_GetUnitPriceValue().</p>


@anchor AB_SECURITY_unitPriceDate
<h2>unitPriceDate</h2>

Date for the unitPriceValue
<p>Set this property with @ref AB_Security_SetUnitPriceDate(), get it with @ref AB_Security_GetUnitPriceDate().</p>

*/

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

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

typedef struct AB_SECURITY AB_SECURITY;
GWEN_LIST_FUNCTION_LIB_DEFS(AB_SECURITY, AB_Security, AQBANKING_API)
GWEN_LIST2_FUNCTION_LIB_DEFS(AB_SECURITY, AB_Security, AQBANKING_API)



/* post-headers */
#include <aqbanking/types/value.h>


/** Constructor. */
AQBANKING_API AB_SECURITY *AB_Security_new(void);

/** Destructor. */
AQBANKING_API void AB_Security_free(AB_SECURITY *p_struct);

AQBANKING_API void AB_Security_Attach(AB_SECURITY *p_struct);

AQBANKING_API AB_SECURITY *AB_Security_dup(const AB_SECURITY *p_src);

AQBANKING_API AB_SECURITY *AB_Security_copy(AB_SECURITY *p_struct, const AB_SECURITY *p_src);

/** Getter.
 * Use this function to get the member "name" (see @ref AB_SECURITY_name)
*/
AQBANKING_API const char *AB_Security_GetName(const AB_SECURITY *p_struct);

/** Getter.
 * Use this function to get the member "uniqueId" (see @ref AB_SECURITY_uniqueId)
*/
AQBANKING_API const char *AB_Security_GetUniqueId(const AB_SECURITY *p_struct);

/** Getter.
 * Use this function to get the member "nameSpace" (see @ref AB_SECURITY_nameSpace)
*/
AQBANKING_API const char *AB_Security_GetNameSpace(const AB_SECURITY *p_struct);

/** Getter.
 * Use this function to get the member "tickerSymbol" (see @ref AB_SECURITY_tickerSymbol)
*/
AQBANKING_API const char *AB_Security_GetTickerSymbol(const AB_SECURITY *p_struct);

/** Getter.
 * Use this function to get the member "units" (see @ref AB_SECURITY_units)
*/
AQBANKING_API const AB_VALUE *AB_Security_GetUnits(const AB_SECURITY *p_struct);

/** Getter.
 * Use this function to get the member "unitPriceValue" (see @ref AB_SECURITY_unitPriceValue)
*/
AQBANKING_API const AB_VALUE *AB_Security_GetUnitPriceValue(const AB_SECURITY *p_struct);

/** Getter.
 * Use this function to get the member "unitPriceDate" (see @ref AB_SECURITY_unitPriceDate)
*/
AQBANKING_API const GWEN_TIME *AB_Security_GetUnitPriceDate(const AB_SECURITY *p_struct);

/** Setter.
 * Use this function to set the member "name" (see @ref AB_SECURITY_name)
*/
AQBANKING_API void AB_Security_SetName(AB_SECURITY *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "uniqueId" (see @ref AB_SECURITY_uniqueId)
*/
AQBANKING_API void AB_Security_SetUniqueId(AB_SECURITY *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "nameSpace" (see @ref AB_SECURITY_nameSpace)
*/
AQBANKING_API void AB_Security_SetNameSpace(AB_SECURITY *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "tickerSymbol" (see @ref AB_SECURITY_tickerSymbol)
*/
AQBANKING_API void AB_Security_SetTickerSymbol(AB_SECURITY *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "units" (see @ref AB_SECURITY_units)
*/
AQBANKING_API void AB_Security_SetUnits(AB_SECURITY *p_struct, const AB_VALUE *p_src);

/** Setter.
 * Use this function to set the member "unitPriceValue" (see @ref AB_SECURITY_unitPriceValue)
*/
AQBANKING_API void AB_Security_SetUnitPriceValue(AB_SECURITY *p_struct, const AB_VALUE *p_src);

/** Setter.
 * Use this function to set the member "unitPriceDate" (see @ref AB_SECURITY_unitPriceDate)
*/
AQBANKING_API void AB_Security_SetUnitPriceDate(AB_SECURITY *p_struct, const GWEN_TIME *p_src);

AQBANKING_API AB_SECURITY_LIST *AB_Security_List_dup(const AB_SECURITY_LIST *p_src);

AQBANKING_API void AB_Security_ReadDb(AB_SECURITY *p_struct, GWEN_DB_NODE *p_db);

AQBANKING_API int AB_Security_WriteDb(const AB_SECURITY *p_struct, GWEN_DB_NODE *p_db);

AQBANKING_API AB_SECURITY *AB_Security_fromDb(GWEN_DB_NODE *p_db);

AQBANKING_API int AB_Security_toDb(const AB_SECURITY *p_struct, GWEN_DB_NODE *p_db);

AQBANKING_API void AB_Security_ReadXml(AB_SECURITY *p_struct, GWEN_XMLNODE *p_db);

AQBANKING_API void AB_Security_WriteXml(const AB_SECURITY *p_struct, GWEN_XMLNODE *p_db);

AQBANKING_API void AB_Security_toXml(const AB_SECURITY *p_struct, GWEN_XMLNODE *p_db);

AQBANKING_API AB_SECURITY *AB_Security_fromXml(GWEN_XMLNODE *p_db);

AQBANKING_API void AB_Security_toHashString(const AB_SECURITY *p_struct, GWEN_BUFFER *p_buffer);

AQBANKING_API int AB_Security_List2_freeAll(AB_SECURITY_LIST2 *tl);


#ifdef __cplusplus
}
#endif

#endif

