Aw
view release on metacpan or search on metacpan
#===============================================================================
Aw::Adapter
_new ( CLASS, version, ... )
char * CLASS
char * version
PREINIT:
awAdapterProperties * awProperties = NULL;
int argc = 0;
char ** argv;
CODE:
RETVAL = (xsAdapter *)safemalloc ( sizeof(xsAdapter) );
if ( RETVAL == NULL ) {
setErrMsg ( &gErrMsg, 1, "Aw::Adapter::new: unable to malloc new adapter" );
#ifdef AWXS_WARNS
if ( gWarn )
warn ( gErrMsg );
#endif /* AWXS_WARNS */
XSRETURN_UNDEF;
}
/* initialize the error cleanly */
RETVAL->err = AW_NO_ERROR;
RETVAL->errMsg = NULL;
RETVAL->Warn = gWarn;
RETVAL->handle = NULL;
RETVAL->callback = 0x0;
RETVAL->firstCB = 0x0;
if( SvROK(ST(2)) && (SvTYPE(SvRV(ST(2))) == SVt_PVHV) )
awProperties = awxsHashToProperties ( (HV*)SvRV( ST(2) ) );
else {
int i;
argv = XS_unpack_charPtrPtr ( ST(2) );
argc = av_len ( (AV*)SvRV( ST(2) ) ) + 1;
awProperties = awAdapterLoadProperties ( argc, argv );
XS_release_charPtrPtr ( argv );
if ( awProperties == NULL )
XSRETURN_UNDEF;
}
if ( awProperties ) {
/* start logging */
awAdapterInitLogging ( awProperties );
/* create the adapter structure */
RETVAL->adapter = awAdapterCreate ( awProperties, version );
}
else {
RETVAL->adapter = NULL;
}
/* register our callbacks */
RETVAL->adapter->setupEventFunction =& setupEvent;
RETVAL->adapter->processRequestFunction =& processRequest;
RETVAL->adapter->cleanupEventTypeFunction =& cleanupEventType;
RETVAL->adapter->beginSetupFunction =& beginSetup;
RETVAL->adapter->endSetupFunction =& endSetup;
RETVAL->adapter->processPublicationFunction =& processPublication;
RETVAL->adapter->beginTransactionFunction =& beginTransaction;
RETVAL->adapter->endTransactionFunction =& endTransaction;
OUTPUT:
RETVAL
void
addEvent ( self, event )
Aw::Adapter self
Aw::EventType event
CODE:
AWXS_CLEARERROR
awAdapterAddEvent ( self->adapter, event->adapterET );
void
checkPublications ( self )
Aw::Adapter self
CODE:
AWXS_CLEARERROR
awAdapterCheckPublications ( self->adapter );
awaBool
createAdapterClient ( self, stateShare )
Aw::Adapter self
awaBool stateShare
PREINIT:
awaBool keepShareState;
CODE:
AWXS_CLEARERROR
keepShareState = self->adapter->useSharedState;
self->adapter->useSharedState = stateShare;
gErr = self->err = awAdapterCreateClient ( self->adapter );
AWXS_CHECKSETERROR
self->adapter->useSharedState = keepShareState;
RETVAL = ( self->err == AW_NO_ERROR ) ? awaFalse : awaTrue;
OUTPUT:
( run in 1.811 second using v1.01-cache-2.11-cpan-140bd7fdf52 )