XTA: API Reference for C language

lixa_iface.h File Reference
#include "xa.h"
#include "xta_iface.h"
Include dependency graph for lixa_iface.h:

Go to the source code of this file.

Data Structures

struct  lixa_iface_s
 

Macros

#define LIXA_IFACE_STD   0
 
#define LIXA_IFACE_XTA   1
 
#define LIXA_TRACE_MODULE   LIXA_TRACE_MOD_CLIENT_CONFIG
 

Typedefs

typedef struct lixa_iface_s lixa_iface_t
 
typedef struct xta_xa_resource_s xta_xa_resource_t
 

Functions

static long lixa_iface_get_flags (const lixa_iface_t *iface)
 
static const char * lixa_iface_get_name (const lixa_iface_t *iface)
 
void lixa_iface_reset (lixa_iface_t *iface)
 
void lixa_iface_set_std (lixa_iface_t *iface, struct xa_switch_t *std)
 
void lixa_iface_set_xta (lixa_iface_t *iface, const struct xta_iface_s *xta, xta_xa_resource_t *context)
 
static int lixa_iface_xa_close (lixa_iface_t *iface, char *info, int rmid, long flags)
 
static int lixa_iface_xa_commit (lixa_iface_t *iface, const XID *xid, int rmid, long flags)
 
static int lixa_iface_xa_end (lixa_iface_t *iface, const XID *xid, int rmid, long flags)
 
static int lixa_iface_xa_forget (lixa_iface_t *iface, const XID *xid, int rmid, long flags)
 
static int lixa_iface_xa_open (lixa_iface_t *iface, char *info, int rmid, long flags)
 
static int lixa_iface_xa_prepare (lixa_iface_t *iface, const XID *xid, int rmid, long flags)
 
static int lixa_iface_xa_recover (lixa_iface_t *iface, XID *xids, long count, int rmid, long flags)
 
static int lixa_iface_xa_rollback (lixa_iface_t *iface, const XID *xid, int rmid, long flags)
 
static int lixa_iface_xa_start (lixa_iface_t *iface, const XID *xid, int rmid, long flags)
 

Macro Definition Documentation

#define LIXA_IFACE_XTA   1

XTA interface, as in xta_iface.h file

Definition at line 47 of file lixa_iface.h.

#define LIXA_TRACE_MODULE   LIXA_TRACE_MOD_CLIENT_CONFIG

Definition at line 36 of file lixa_iface.h.

Typedef Documentation

typedef struct lixa_iface_s lixa_iface_t

This interface is a wrapper used to pass different interfaces in absence of polymorphism

Definition at line 56 of file lixa_iface.h.

Function Documentation

static long lixa_iface_get_flags ( const lixa_iface_t iface)
inlinestatic

Returns the XA flags for the resource managed by an interface

Parameters
[in]iface: reference to the interface object
Returns
XA flags for the resource managed by the interface

Definition at line 131 of file lixa_iface.h.

References xta_iface_s::flags, xa_switch_t::flags, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, and lixa_iface_s::xta.

static const char* lixa_iface_get_name ( const lixa_iface_t iface)
inlinestatic

Returns the XA name for the resource managed by an interface

Parameters
[in]iface: reference to the interface object
Returns
XA name for the resource managed by the interface

Definition at line 145 of file lixa_iface.h.

References LIXA_IFACE_STD, xta_iface_s::name, xa_switch_t::name, lixa_iface_s::std, lixa_iface_s::type, and lixa_iface_s::xta.

void lixa_iface_reset ( lixa_iface_t iface)

Reset a Resource Manager interface

Parameters
[out]iface: reference to the object that must be resetted

Referenced by xta_xa_resource_init().

void lixa_iface_set_std ( lixa_iface_t iface,
struct xa_switch_t std 
)

Set a standard LIXA interface for Resource Manager

Parameters
[out]iface: reference to the object that must be set
[in]std: reference to XA standard function struct
void lixa_iface_set_xta ( lixa_iface_t iface,
const struct xta_iface_s xta,
xta_xa_resource_t context 
)

Set an XTA interface for the Resource Manager

Parameters
[out]iface: reference to the object that must be set
[in]xta: reference to XTA interface struct
[in]context: reference to the resource context that will be passed to functions

Referenced by xta_mysql_xa_resource_init(), and xta_postgresql_xa_resource_init().

static int lixa_iface_xa_close ( lixa_iface_t iface,
char *  info,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_close function

Parameters
[in]iface: reference to the interface object
[in]info: close string as documented in XA specification
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
an XA return code as documented in XA specification

Definition at line 183 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_close_entry, xa_switch_t::xa_close_entry, and lixa_iface_s::xta.

static int lixa_iface_xa_commit ( lixa_iface_t iface,
const XID xid,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_commit function

Parameters
[in]iface: reference to the interface object
[in]xid: transaction id, XA style
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
an XA return code as documented in XA specification

Definition at line 223 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_commit_entry, xa_switch_t::xa_commit_entry, and lixa_iface_s::xta.

static int lixa_iface_xa_end ( lixa_iface_t iface,
const XID xid,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_end function

Parameters
[in]iface: reference to the interface object
[in]xid: transaction id, XA style
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
an XA return code as documented in XA specification

Definition at line 309 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_end_entry, xa_switch_t::xa_end_entry, and lixa_iface_s::xta.

static int lixa_iface_xa_forget ( lixa_iface_t iface,
const XID xid,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_forget function

Parameters
[in]iface: reference to the interface object
[in]xid: transaction id, XA style
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
an XA return code as documented in XA specification

Definition at line 289 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_forget_entry, xa_switch_t::xa_forget_entry, and lixa_iface_s::xta.

static int lixa_iface_xa_open ( lixa_iface_t iface,
char *  info,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_open function

Parameters
[in]iface: reference to the interface object
[in]info: open string as documented in XA specification
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
an XA return code as documented in XA specification

Definition at line 163 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_open_entry, xa_switch_t::xa_open_entry, and lixa_iface_s::xta.

static int lixa_iface_xa_prepare ( lixa_iface_t iface,
const XID xid,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_prepare function

Parameters
[in]iface: reference to the interface object
[in]xid: transaction id, XA style
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
an XA return code as documented in XA specification

Definition at line 328 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_prepare_entry, xa_switch_t::xa_prepare_entry, and lixa_iface_s::xta.

static int lixa_iface_xa_recover ( lixa_iface_t iface,
XID xids,
long  count,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_recover function

Parameters
[in]iface: reference to the interface object
[out]xids: an array into which the resource manager places XIDs for these transactions
[in]count: maximum number of XIDs that fit into that array
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
>= 0, total number of XIDs it returned in *xids
an XA error code as documented in XA specification

Definition at line 267 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_recover_entry, xa_switch_t::xa_recover_entry, and lixa_iface_s::xta.

static int lixa_iface_xa_rollback ( lixa_iface_t iface,
const XID xid,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_rollback function

Parameters
[in]iface: reference to the interface object
[in]xid: transaction id, XA style
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
an XA return code as documented in XA specification

Definition at line 243 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_rollback_entry, xa_switch_t::xa_rollback_entry, and lixa_iface_s::xta.

static int lixa_iface_xa_start ( lixa_iface_t iface,
const XID xid,
int  rmid,
long  flags 
)
inlinestatic

This function implements some sort of polymorphism and call the correct xa_start function

Parameters
[in]iface: reference to the interface object
[in]xid: transaction id, XA style
[in]rmid: resource manager id as documented in XA specification
[in]flags: as documented in XA specification
Returns
an XA return code as documented in XA specification

Definition at line 203 of file lixa_iface.h.

References lixa_iface_s::context, LIXA_IFACE_STD, lixa_iface_s::std, lixa_iface_s::type, xta_iface_s::xa_start_entry, xa_switch_t::xa_start_entry, and lixa_iface_s::xta.


Copyright © 2009-2019, Christian Ferrari tiian@users.sourceforge.net http://www.tiian.org/