Aw
view release on metacpan or search on metacpan
#include "messages.h"
#include <awlicense.h>
/* includes for Aw.xs */
#include <awxs.h>
#include <awxs.m>
#include <awxs.def>
#include "Av_CharPtrPtr.h"
#include "exttypes.h"
#include "HashToEvent.h"
#include "EventToHash.h"
#include "TypeDefToHash.h"
#include "Util.h"
BrokerBoolean BrokerCallbackFunc ( BrokerClient cbClient, BrokerEvent cbEvent, void * vcb );
/* gErr is an internal err tracker, its value is always the last BrokerError
* created. Since we can not throw exceptions and not all routines will
* return errors on failure (creation of a new object returns undef on failure
* and sometimes (clients) we want to know why) we on occasion need this.
*
* We can check values of the last error thru calls to Aw::Error methods
* without any arguements:
*
* if ( Aw::Error::getCode == AW_ERROR_CLIENT_EXISTS )
*
*/
BrokerError gErr = AW_NO_ERROR;
char * gErrMsg = NULL;
int gErrCode = 0;
awaBool gWarn = awaFalse;
/* gHandle is an auxilarly AdapterHandle pointer to simple ALIASed code
* where both xsAdapter and xsAdapterUtil datatypes get used. Using the
* "global handle" should reduce the code size overall as numerous local
* handle pointers need not be created.
*
*/
awAdapterHandle * gHandle = NULL;
static double
constant(name, arg)
char *name;
int arg;
{
errno = 0;
switch (*name) {
case 'A':
if (strEQ(name, "AW_AUTO_SIZE"))
#ifdef AW_AUTO_SIZE
return AW_AUTO_SIZE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ACK_NONE"))
#ifdef AW_ACK_NONE
return AW_ACK_NONE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ACK_AUTOMATIC"))
#ifdef AW_ACK_AUTOMATIC
return AW_ACK_AUTOMATIC;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ACK_THROUGH"))
#ifdef AW_ACK_THROUGH
return AW_ACK_THROUGH;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ACK_SELECTIVE"))
#ifdef AW_ACK_SELECTIVE
return AW_ACK_SELECTIVE;
#else
goto not_there;
#endif
switch (name[3]) {
case 'C':
if (strEQ(name, "AW_CONNECT_STATE_CONNECTED"))
#ifdef AW_CONNECT_STATE_CONNECTED
return AW_CONNECT_STATE_CONNECTED;
#else
goto not_there;
#endif
if (strEQ(name, "AW_CONNECT_STATE_DISCONNECTED"))
#ifdef AW_CONNECT_STATE_DISCONNECTED
return AW_CONNECT_STATE_DISCONNECTED;
#else
goto not_there;
#endif
if (strEQ(name, "AW_CONNECT_STATE_RECONNECTED"))
#ifdef AW_CONNECT_STATE_RECONNECTED
return AW_CONNECT_STATE_RECONNECTED;
#else
goto not_there;
#endif
break;
case 'E':
if (strEQ(name, "AW_ENCRYPT_LEVEL_NO_ENCRYPTION"))
#ifdef AW_ENCRYPT_LEVEL_NO_ENCRYPTION
return AW_ENCRYPT_LEVEL_NO_ENCRYPTION;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ENCRYPT_LEVEL_US_DOMESTIC"))
#ifdef AW_ENCRYPT_LEVEL_US_DOMESTIC
return AW_ENCRYPT_LEVEL_US_DOMESTIC;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ENCRYPT_LEVEL_US_EXPORT"))
#ifdef AW_ENCRYPT_LEVEL_US_EXPORT
return AW_ENCRYPT_LEVEL_US_EXPORT;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ENTIRE_SEQUENCE"))
#ifdef AW_ENTIRE_SEQUENCE
return AW_ENTIRE_SEQUENCE;
#else
goto not_there;
#endif
switch (name[9]) {
case 'B':
if (strEQ(name, "AW_ERROR_BAD_STATE"))
#ifdef AW_ERROR_BAD_STATE
return AW_ERROR_BAD_STATE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_BROKER_EXISTS"))
#ifdef AW_ERROR_BROKER_EXISTS
return AW_ERROR_BROKER_EXISTS;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_BROKER_FAILURE"))
#ifdef AW_ERROR_BROKER_FAILURE
return AW_ERROR_BROKER_FAILURE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_BROKER_NOT_RUNNING"))
#ifdef AW_ERROR_BROKER_NOT_RUNNING
return AW_ERROR_BROKER_NOT_RUNNING;
#else
goto not_there;
#endif
break;
case 'C':
if (strEQ(name, "AW_ERROR_CLIENT_CONTENTION"))
#ifdef AW_ERROR_CLIENT_CONTENTION
return AW_ERROR_CLIENT_CONTENTION;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_CLIENT_EXISTS"))
#ifdef AW_ERROR_CLIENT_EXISTS
return AW_ERROR_CLIENT_EXISTS;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_CLIENT_GROUP_EXISTS"))
#ifdef AW_ERROR_CLIENT_GROUP_EXISTS
return AW_ERROR_CLIENT_GROUP_EXISTS;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_COMM_FAILURE"))
#ifdef AW_ERROR_COMM_FAILURE
return AW_ERROR_COMM_FAILURE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_CONNECTION_CLOSED"))
#ifdef AW_ERROR_CONNECTION_CLOSED
return AW_ERROR_CONNECTION_CLOSED;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_CORRUPT"))
#ifdef AW_ERROR_CORRUPT
return AW_ERROR_CORRUPT;
#else
goto not_there;
#endif
break;
case 'D':
if (strEQ(name, "AW_ERROR_DEPENDENCY"))
#ifdef AW_ERROR_DEPENDENCY
return AW_ERROR_DEPENDENCY;
#else
goto not_there;
#endif
break;
case 'F':
if (strEQ(name, "AW_ERROR_FIELD_NOT_FOUND"))
#ifdef AW_ERROR_FIELD_NOT_FOUND
return AW_ERROR_FIELD_NOT_FOUND;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_FIELD_TYPE_MISMATCH"))
#ifdef AW_ERROR_FIELD_TYPE_MISMATCH
return AW_ERROR_FIELD_TYPE_MISMATCH;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_FILE_NOT_FOUND"))
#ifdef AW_ERROR_FILE_NOT_FOUND
return AW_ERROR_FILE_NOT_FOUND;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_FILTER_PARSE"))
#ifdef AW_ERROR_FILTER_PARSE
return AW_ERROR_FILTER_PARSE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_FILTER_RUNTIME"))
#ifdef AW_ERROR_FILTER_RUNTIME
return AW_ERROR_FILTER_RUNTIME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_FORMAT"))
#ifdef AW_ERROR_FORMAT
return AW_ERROR_FORMAT;
#else
goto not_there;
#endif
break;
case 'H':
if (strEQ(name, "AW_ERROR_HOST_NOT_FOUND"))
#ifdef AW_ERROR_HOST_NOT_FOUND
return AW_ERROR_HOST_NOT_FOUND;
#else
goto not_there;
#endif
break;
case 'I':
if (strEQ(name, "AW_ERROR_INCOMPATIBLE_VERSION"))
#ifdef AW_ERROR_INCOMPATIBLE_VERSION
return AW_ERROR_INCOMPATIBLE_VERSION;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INPUT_PARSE"))
#ifdef AW_ERROR_INPUT_PARSE
return AW_ERROR_INPUT_PARSE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INTERRUPTED"))
#ifdef AW_ERROR_INTERRUPTED
return AW_ERROR_INTERRUPTED;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_ACCESS_LIST"))
#ifdef AW_ERROR_INVALID_ACCESS_LIST
return AW_ERROR_INVALID_ACCESS_LIST;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_ACKNOWLEDGEMENT"))
#ifdef AW_ERROR_INVALID_ACKNOWLEDGEMENT
return AW_ERROR_INVALID_ACKNOWLEDGEMENT;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_BROKER_NAME"))
#ifdef AW_ERROR_INVALID_BROKER_NAME
return AW_ERROR_INVALID_BROKER_NAME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_CLIENT"))
#ifdef AW_ERROR_INVALID_CLIENT
return AW_ERROR_INVALID_CLIENT;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_CLIENT_GROUP_NAME"))
#ifdef AW_ERROR_INVALID_CLIENT_GROUP_NAME
return AW_ERROR_INVALID_CLIENT_GROUP_NAME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_CLIENT_ID"))
#ifdef AW_ERROR_INVALID_CLIENT_ID
return AW_ERROR_INVALID_CLIENT_ID;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_DESCRIPTOR"))
#ifdef AW_ERROR_INVALID_DESCRIPTOR
return AW_ERROR_INVALID_DESCRIPTOR;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_EVENT"))
#ifdef AW_ERROR_INVALID_EVENT
return AW_ERROR_INVALID_EVENT;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_EVENT_TYPE_NAME"))
#ifdef AW_ERROR_INVALID_EVENT_TYPE_NAME
return AW_ERROR_INVALID_EVENT_TYPE_NAME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_FIELD_NAME"))
#ifdef AW_ERROR_INVALID_FIELD_NAME
return AW_ERROR_INVALID_FIELD_NAME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_FILTER"))
#ifdef AW_ERROR_INVALID_FILTER
return AW_ERROR_INVALID_FILTER;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_LICENSE"))
#ifdef AW_ERROR_INVALID_LICENSE
return AW_ERROR_INVALID_LICENSE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_LOG_CONFIG"))
#ifdef AW_ERROR_INVALID_LOG_CONFIG
return AW_ERROR_INVALID_LOG_CONFIG;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_NAME"))
#ifdef AW_ERROR_INVALID_NAME
return AW_ERROR_INVALID_NAME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_PERMISSION"))
#ifdef AW_ERROR_INVALID_PERMISSION
return AW_ERROR_INVALID_PERMISSION;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_PLATFORM_KEY"))
#ifdef AW_ERROR_INVALID_PLATFORM_KEY
return AW_ERROR_INVALID_PLATFORM_KEY;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_PORT"))
#ifdef AW_ERROR_INVALID_PORT
return AW_ERROR_INVALID_PORT;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_SUBSCRIPTION"))
#ifdef AW_ERROR_INVALID_SUBSCRIPTION
return AW_ERROR_INVALID_SUBSCRIPTION;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_TERRITORY_NAME"))
#ifdef AW_ERROR_INVALID_TERRITORY_NAME
return AW_ERROR_INVALID_TERRITORY_NAME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_TYPE"))
#ifdef AW_ERROR_INVALID_TYPE
return AW_ERROR_INVALID_TYPE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_TYPECACHE"))
#ifdef AW_ERROR_INVALID_TYPECACHE
return AW_ERROR_INVALID_TYPECACHE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_INVALID_TYPEDEF"))
#ifdef AW_ERROR_INVALID_TYPEDEF
return AW_ERROR_INVALID_TYPEDEF;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_IN_TERRITORY"))
#ifdef AW_ERROR_IN_TERRITORY
return AW_ERROR_IN_TERRITORY;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_NOT_IMPLEMENTED"))
#ifdef AW_ERROR_NOT_IMPLEMENTED
return AW_ERROR_NOT_IMPLEMENTED;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_NOT_IN_TERRITORY"))
#ifdef AW_ERROR_NOT_IN_TERRITORY
return AW_ERROR_NOT_IN_TERRITORY;
#else
goto not_there;
#endif
break;
case 'N':
if (strEQ(name, "AW_ERROR_NO_MEMORY"))
#ifdef AW_ERROR_NO_MEMORY
return AW_ERROR_NO_MEMORY;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_NO_PERMISSION"))
#ifdef AW_ERROR_NO_PERMISSION
return AW_ERROR_NO_PERMISSION;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_NULL_PARAM"))
#ifdef AW_ERROR_NULL_PARAM
return AW_ERROR_NULL_PARAM;
#else
goto not_there;
#endif
break;
case 'O':
if (strEQ(name, "AW_ERROR_OUT_OF_RANGE"))
#ifdef AW_ERROR_OUT_OF_RANGE
return AW_ERROR_OUT_OF_RANGE;
#else
goto not_there;
#endif
break;
case 'P':
if (strEQ(name, "AW_ERROR_PROTOCOL"))
#ifdef AW_ERROR_PROTOCOL
return AW_ERROR_PROTOCOL;
#else
goto not_there;
#endif
break;
case 'S':
if (strEQ(name, "AW_ERROR_SECURITY"))
#ifdef AW_ERROR_SECURITY
return AW_ERROR_SECURITY;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_SUBSCRIPTION_EXISTS"))
#ifdef AW_ERROR_SUBSCRIPTION_EXISTS
return AW_ERROR_SUBSCRIPTION_EXISTS;
#else
goto not_there;
#endif
break;
case 'T':
if (strEQ(name, "AW_ERROR_TIMEOUT"))
#ifdef AW_ERROR_TIMEOUT
return AW_ERROR_TIMEOUT;
#else
goto not_there;
#endif
break;
case 'U':
if (strEQ(name, "AW_ERROR_UNKNOWN"))
#ifdef AW_ERROR_UNKNOWN
return AW_ERROR_UNKNOWN;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_BROKER_NAME"))
#ifdef AW_ERROR_UNKNOWN_BROKER_NAME
return AW_ERROR_UNKNOWN_BROKER_NAME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_CLIENT_GROUP"))
#ifdef AW_ERROR_UNKNOWN_CLIENT_GROUP
return AW_ERROR_UNKNOWN_CLIENT_GROUP;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_CLIENT_ID"))
#ifdef AW_ERROR_UNKNOWN_CLIENT_ID
return AW_ERROR_UNKNOWN_CLIENT_ID;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_EVENT_TYPE"))
#ifdef AW_ERROR_UNKNOWN_EVENT_TYPE
return AW_ERROR_UNKNOWN_EVENT_TYPE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_INFOSET"))
#ifdef AW_ERROR_UNKNOWN_INFOSET
return AW_ERROR_UNKNOWN_INFOSET;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_KEY"))
#ifdef AW_ERROR_UNKNOWN_KEY
return AW_ERROR_UNKNOWN_KEY;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_NAME"))
#ifdef AW_ERROR_UNKNOWN_NAME
return AW_ERROR_UNKNOWN_NAME;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_SERVER"))
#ifdef AW_ERROR_UNKNOWN_SERVER
return AW_ERROR_UNKNOWN_SERVER;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_SESSION_ID"))
#ifdef AW_ERROR_UNKNOWN_SESSION_ID
return AW_ERROR_UNKNOWN_SESSION_ID;
#else
goto not_there;
#endif
if (strEQ(name, "AW_ERROR_UNKNOWN_TERRITORY"))
#ifdef AW_ERROR_UNKNOWN_TERRITORY
return AW_ERROR_UNKNOWN_TERRITORY;
#else
goto not_there;
#endif
}
break;
case 'I':
if (strEQ(name, "AW_INFINITE"))
#ifdef AW_INFINITE
return AW_INFINITE;
#else
goto not_there;
#endif
break;
case 'N':
if (strEQ(name, "AW_NO_ERROR"))
#ifdef AW_NO_ERROR
return ((double)0x00000000);
#else
goto not_there;
#endif
if (strEQ(name, "AW_NO_SHARE_LIMIT"))
#ifdef AW_NO_SHARE_LIMIT
return AW_NO_SHARE_LIMIT;
#else
goto not_there;
#endif
break;
case 'P':
if (strEQ(name, "AW_PLATFORM_AIX"))
#ifdef AW_PLATFORM_AIX
return AW_PLATFORM_AIX;
#else
goto not_there;
#endif
if (strEQ(name, "AW_PLATFORM_ANY"))
#ifdef AW_PLATFORM_ANY
return AW_PLATFORM_ANY;
#else
goto not_there;
#endif
if (strEQ(name, "AW_PLATFORM_DEC"))
#ifdef AW_PLATFORM_DEC
return AW_PLATFORM_DEC;
#else
goto not_there;
#endif
if (strEQ(name, "AW_PLATFORM_HPUX"))
#ifdef AW_PLATFORM_HPUX
return AW_PLATFORM_HPUX;
#else
goto not_there;
#endif
if (strEQ(name, "AW_PLATFORM_IRIX"))
#ifdef AW_PLATFORM_IRIX
return AW_PLATFORM_IRIX;
#else
goto not_there;
#endif
if (strEQ(name, "AW_PLATFORM_SOLARIS"))
#ifdef AW_PLATFORM_SOLARIS
return AW_PLATFORM_SOLARIS;
#else
goto not_there;
#endif
if (strEQ(name, "AW_PLATFORM_WINDOWS"))
#ifdef AW_PLATFORM_WINDOWS
return AW_PLATFORM_WINDOWS;
#else
goto not_there;
#endif
break;
case 'R':
if (strEQ(name, "AW_REPLY_FLAG_CONTINUE"))
#ifdef AW_REPLY_FLAG_CONTINUE
return AW_REPLY_FLAG_CONTINUE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_REPLY_FLAG_END"))
#ifdef AW_REPLY_FLAG_END
return AW_REPLY_FLAG_END;
#else
goto not_there;
#endif
if (strEQ(name, "AW_REPLY_FLAG_START"))
#ifdef AW_REPLY_FLAG_START
return AW_REPLY_FLAG_START;
#else
goto not_there;
#endif
if (strEQ(name, "AW_REPLY_FLAG_START_AND_END"))
#ifdef AW_REPLY_FLAG_START_AND_END
return AW_REPLY_FLAG_START_AND_END;
#else
goto not_there;
#endif
if (strEQ(name, "AW_RETRIEVE_ALL"))
#ifdef AW_RETRIEVE_ALL
return AW_RETRIEVE_ALL;
#else
goto not_there;
#endif
break;
case 'S':
/*
if (strEQ(name, "AW_SHARED_ORDER_NONE"))
#ifdef AW_SHARED_ORDER_NONE
return AW_SHARED_ORDER_NONE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_SHARED_ORDER_BY_PUBLISHER"))
#ifdef AW_SHARED_ORDER_BY_PUBLISHER
return AW_SHARED_ORDER_BY_PUBLISHER;
#else
goto not_there;
#endif
*/
if (strEQ(name, "AW_STORAGE_GUARANTEED"))
#ifdef AW_STORAGE_GUARANTEED
return AW_STORAGE_GUARANTEED;
#else
goto not_there;
#endif
if (strEQ(name, "AW_STORAGE_PERSISTENT"))
#ifdef AW_STORAGE_PERSISTENT
return AW_STORAGE_PERSISTENT;
#else
goto not_there;
#endif
if (strEQ(name, "AW_STORAGE_VOLATILE"))
#ifdef AW_STORAGE_VOLATILE
return AW_STORAGE_VOLATILE;
#else
goto not_there;
#endif
break;
case 'T':
if (strEQ(name, "AW_TRANSACTION_LEVEL_ANY"))
#ifdef AW_TRANSACTION_LEVEL_ANY
return AW_TRANSACTION_LEVEL_ANY;
#else
goto not_there;
#endif
if (strEQ(name, "AW_TRANSACTION_LEVEL_BASIC"))
#ifdef AW_TRANSACTION_LEVEL_BASIC
return AW_TRANSACTION_LEVEL_BASIC;
#else
goto not_there;
#endif
if (strEQ(name, "AW_TRANSACTION_LEVEL_CONVERSATIONAL"))
#ifdef AW_TRANSACTION_LEVEL_CONVERSATIONAL
return AW_TRANSACTION_LEVEL_CONVERSATIONAL;
#else
goto not_there;
#endif
if (strEQ(name, "AW_TRANSACTION_LEVEL_NONE"))
#ifdef AW_TRANSACTION_LEVEL_NONE
return AW_TRANSACTION_LEVEL_NONE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_TRANSACTION_LEVEL_PSEUDO"))
#ifdef AW_TRANSACTION_LEVEL_PSEUDO
return AW_TRANSACTION_LEVEL_PSEUDO;
#else
goto not_there;
#endif
if (strEQ(name, "AW_TRANSACTION_MODE_COMMIT"))
#ifdef AW_TRANSACTION_MODE_COMMIT
return AW_TRANSACTION_MODE_COMMIT;
#else
goto not_there;
#endif
if (strEQ(name, "AW_TRANSACTION_MODE_ROLLBACK"))
#ifdef AW_TRANSACTION_MODE_ROLLBACK
return AW_TRANSACTION_MODE_ROLLBACK;
#else
goto not_there;
#endif
if (strEQ(name, "AW_TRANSACTION_MODE_SAVEPOINT"))
#ifdef AW_TRANSACTION_MODE_SAVEPOINT
return AW_TRANSACTION_MODE_SAVEPOINT;
#else
goto not_there;
#endif
break;
case 'U':
break;
case 'V':
if (strEQ(name, "AW_VALIDATE_BAD_LICENSE"))
#ifdef AW_VALIDATE_BAD_LICENSE
return AW_VALIDATE_BAD_LICENSE;
#else
goto not_there;
#endif
if (strEQ(name, "AW_VALIDATE_BAD_PLATFORM"))
#ifdef AW_VALIDATE_BAD_PLATFORM
return AW_VALIDATE_BAD_PLATFORM;
#else
goto not_there;
#endif
if (strEQ(name, "AW_VALIDATE_BAD_PRODUCT"))
#ifdef AW_VALIDATE_BAD_PRODUCT
return AW_VALIDATE_BAD_PRODUCT;
#else
goto not_there;
#endif
if (strEQ(name, "AW_VALIDATE_BAD_VERSION"))
#ifdef AW_VALIDATE_BAD_VERSION
return AW_VALIDATE_BAD_VERSION;
#else
goto not_there;
#endif
if (strEQ(name, "AW_VALIDATE_EXPIRED"))
#ifdef AW_VALIDATE_EXPIRED
return AW_VALIDATE_EXPIRED;
#else
goto not_there;
#endif
if (strEQ(name, "AW_VALIDATE_OKAY"))
#ifdef AW_VALIDATE_OKAY
return AW_VALIDATE_OKAY;
#else
goto not_there;
#endif
if (strEQ(name, "AW_VERSION"))
#ifdef AW_VERSION
return AW_VERSION;
#else
goto not_there;
#endif
break;
}
break;
case 'B':
break;
case 'C':
if (strEQ(name, "CAT_ADAPTER"))
#ifdef CAT_ADAPTER
return CAT_ADAPTER;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_APPLICATION"))
#ifdef CAT_APPLICATION
return CAT_APPLICATION;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_BROKER"))
#ifdef CAT_BROKER
return CAT_BROKER;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_DEBUG"))
#ifdef CAT_DEBUG
return CAT_DEBUG;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_FILLER10"))
#ifdef CAT_FILLER10
return CAT_FILLER10;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_FILLER9"))
#ifdef CAT_FILLER9
return CAT_FILLER9;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_KERNEL"))
#ifdef CAT_KERNEL
return CAT_KERNEL;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_MONITOR"))
#ifdef CAT_MONITOR
return CAT_MONITOR;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_SYSTEM"))
#ifdef CAT_SYSTEM
return CAT_SYSTEM;
#else
goto not_there;
#endif
if (strEQ(name, "CAT_TIMEOUT"))
#ifdef CAT_TIMEOUT
return CAT_TIMEOUT;
#else
goto not_there;
#endif
break;
case 'D':
if (strEQ(name, "DEFAULT_TRANSACTION_TIMEOUT"))
#ifdef DEFAULT_TRANSACTION_TIMEOUT
return DEFAULT_TRANSACTION_TIMEOUT;
#else
goto not_there;
#endif
break;
case 'E':
if (strEQ(name, "ERR_ADAPTER_SUBS"))
#ifdef ERR_ADAPTER_SUBS
return ERR_ADAPTER_SUBS;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_BAD_LICENSE"))
#ifdef ERR_BAD_LICENSE
return ERR_BAD_LICENSE;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_CREATE_CLIENT"))
#ifdef ERR_CREATE_CLIENT
return ERR_CREATE_CLIENT;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_GET_ADAPTER_INFO"))
#ifdef ERR_GET_ADAPTER_INFO
return ERR_GET_ADAPTER_INFO;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_GET_EVENTS"))
#ifdef ERR_GET_EVENTS
return ERR_GET_EVENTS;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_LICENSE_BAD_PLATFORM"))
#ifdef ERR_LICENSE_BAD_PLATFORM
return ERR_LICENSE_BAD_PLATFORM;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_LICENSE_BAD_PRODUCT"))
#ifdef ERR_LICENSE_BAD_PRODUCT
return ERR_LICENSE_BAD_PRODUCT;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_LICENSE_BAD_VERSION"))
#ifdef ERR_LICENSE_BAD_VERSION
return ERR_LICENSE_BAD_VERSION;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_LICENSE_EXPIRED"))
#ifdef ERR_LICENSE_EXPIRED
return ERR_LICENSE_EXPIRED;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_LICENSE_WILL_EXPIRE"))
#ifdef ERR_LICENSE_WILL_EXPIRE
return ERR_LICENSE_WILL_EXPIRE;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_PANIC"))
#ifdef ERR_PANIC
return ERR_PANIC;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_PUBLISH_ADAPTER_ERROR"))
#ifdef ERR_PUBLISH_ADAPTER_ERROR
return ERR_PUBLISH_ADAPTER_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_PUBLISH_STATUS"))
#ifdef ERR_PUBLISH_STATUS
return ERR_PUBLISH_STATUS;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_SSL_DESCRIPTOR"))
#ifdef ERR_SSL_DESCRIPTOR
return ERR_SSL_DESCRIPTOR;
#else
goto not_there;
#endif
if (strEQ(name, "ERR_SUBSCRIPTION_ERROR"))
#ifdef ERR_SUBSCRIPTION_ERROR
return ERR_SUBSCRIPTION_ERROR;
#else
goto not_there;
#endif
break;
case 'F':
if (strEQ(name, "FIELD_TYPE_BOOLEAN"))
#ifdef FIELD_TYPE_BOOLEAN
return FIELD_TYPE_BOOLEAN;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_BYTE"))
#ifdef FIELD_TYPE_BYTE
return FIELD_TYPE_BYTE;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_CHAR"))
#ifdef FIELD_TYPE_CHAR
return FIELD_TYPE_CHAR;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_DATE"))
#ifdef FIELD_TYPE_DATE
return FIELD_TYPE_DATE;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_DOUBLE"))
#ifdef FIELD_TYPE_DOUBLE
return FIELD_TYPE_DOUBLE;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_EVENT"))
#ifdef FIELD_TYPE_EVENT
return FIELD_TYPE_EVENT;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_FLOAT"))
#ifdef FIELD_TYPE_FLOAT
return FIELD_TYPE_FLOAT;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_INT"))
#ifdef FIELD_TYPE_INT
return FIELD_TYPE_INT;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_LONG"))
#ifdef FIELD_TYPE_LONG
return FIELD_TYPE_LONG;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_SEQUENCE"))
#ifdef FIELD_TYPE_SEQUENCE
return FIELD_TYPE_SEQUENCE;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_SHORT"))
#ifdef FIELD_TYPE_SHORT
return FIELD_TYPE_SHORT;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_STRING"))
#ifdef FIELD_TYPE_STRING
return FIELD_TYPE_STRING;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_STRUCT"))
#ifdef FIELD_TYPE_STRUCT
return FIELD_TYPE_STRUCT;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_UNICODE_CHAR"))
#ifdef FIELD_TYPE_UNICODE_CHAR
return FIELD_TYPE_UNICODE_CHAR;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_UNICODE_STRING"))
#ifdef FIELD_TYPE_UNICODE_STRING
return FIELD_TYPE_UNICODE_STRING;
#else
goto not_there;
#endif
if (strEQ(name, "FIELD_TYPE_UNKNOWN"))
#ifdef FIELD_TYPE_UNKNOWN
return FIELD_TYPE_UNKNOWN;
#else
goto not_there;
#endif
if (strEQ(name, "FORWARD_ERROR_REQUEST"))
#ifdef FORWARD_ERROR_REQUEST
return FORWARD_ERROR_REQUEST;
#else
goto not_there;
#endif
break;
case 'G':
if (strEQ(name, "GENERIC_ALERT"))
#ifdef GENERIC_ALERT
return GENERIC_ALERT;
#else
goto not_there;
#endif
if (strEQ(name, "GENERIC_INFO"))
#ifdef GENERIC_INFO
return GENERIC_INFO;
#else
goto not_there;
#endif
if (strEQ(name, "GENERIC_WARNING"))
#ifdef GENERIC_WARNING
return GENERIC_WARNING;
#else
goto not_there;
#endif
break;
case 'H':
break;
case 'I':
if (strEQ(name, "INFO_ADD_NOTIFY_EVENT"))
#ifdef INFO_ADD_NOTIFY_EVENT
return INFO_ADD_NOTIFY_EVENT;
#else
goto not_there;
#endif
if (strEQ(name, "INFO_ADD_REQUEST_EVENT"))
#ifdef INFO_ADD_REQUEST_EVENT
return INFO_ADD_REQUEST_EVENT;
#else
goto not_there;
#endif
if (strEQ(name, "INFO_CLEANUP_EVENTTYPE"))
#ifdef INFO_CLEANUP_EVENTTYPE
return INFO_CLEANUP_EVENTTYPE;
#else
goto not_there;
#endif
if (strEQ(name, "INFO_FORWARD_REQUEST"))
#ifdef INFO_FORWARD_REQUEST
return INFO_FORWARD_REQUEST;
#else
goto not_there;
#endif
if (strEQ(name, "INFO_PROCESS_PUBLICATION"))
#ifdef INFO_PROCESS_PUBLICATION
return INFO_PROCESS_PUBLICATION;
#else
goto not_there;
#endif
if (strEQ(name, "INFO_RECEIVED_REQUEST"))
#ifdef INFO_RECEIVED_REQUEST
return INFO_RECEIVED_REQUEST;
#else
goto not_there;
#endif
if (strEQ(name, "INFO_TEST_BROKER"))
#ifdef INFO_TEST_BROKER
return INFO_TEST_BROKER;
#else
goto not_there;
#endif
break;
case 'J':
break;
case 'K':
break;
case 'L':
break;
case 'M':
if (strEQ(name, "MSG_CREATE_EVENT"))
#ifdef MSG_CREATE_EVENT
return MSG_CREATE_EVENT;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_DELIVER_ERROR"))
#ifdef MSG_DELIVER_ERROR
return MSG_DELIVER_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_DELIVER_REPLY_ERROR"))
#ifdef MSG_DELIVER_REPLY_ERROR
return MSG_DELIVER_REPLY_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_DELIVER_STATUS"))
#ifdef MSG_DELIVER_STATUS
return MSG_DELIVER_STATUS;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_FIELD_SET_ERROR"))
#ifdef MSG_FIELD_SET_ERROR
return MSG_FIELD_SET_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_FIELD_SET_NOT_SUPPORTED"))
#ifdef MSG_FIELD_SET_NOT_SUPPORTED
return MSG_FIELD_SET_NOT_SUPPORTED;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_FIELD_SET_NO_FORMAT"))
#ifdef MSG_FIELD_SET_NO_FORMAT
return MSG_FIELD_SET_NO_FORMAT;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_FORMAT_ERROR"))
#ifdef MSG_FORMAT_ERROR
return MSG_FORMAT_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_FORWARD_SET_FIELDS"))
#ifdef MSG_FORWARD_SET_FIELDS
return MSG_FORWARD_SET_FIELDS;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_FORWARD_TO_SESSION"))
#ifdef MSG_FORWARD_TO_SESSION
return MSG_FORWARD_TO_SESSION;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_GET_EVENT_FIELD"))
#ifdef MSG_GET_EVENT_FIELD
return MSG_GET_EVENT_FIELD;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_GET_FAMILY_NAMES"))
#ifdef MSG_GET_FAMILY_NAMES
return MSG_GET_FAMILY_NAMES;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_INFOSET_ENTRY_ERROR"))
#ifdef MSG_INFOSET_ENTRY_ERROR
return MSG_INFOSET_ENTRY_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_INFOSET_ENTRY_MISSING"))
#ifdef MSG_INFOSET_ENTRY_MISSING
return MSG_INFOSET_ENTRY_MISSING;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NOTIFICATION_NOT_SUPPORTED"))
#ifdef MSG_NOTIFICATION_NOT_SUPPORTED
return MSG_NOTIFICATION_NOT_SUPPORTED;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_CAN_PUBLISH"))
#ifdef MSG_NO_CAN_PUBLISH
return MSG_NO_CAN_PUBLISH;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_CAN_PUBLISH_REPLY"))
#ifdef MSG_NO_CAN_PUBLISH_REPLY
return MSG_NO_CAN_PUBLISH_REPLY;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_CAN_SUBSCRIBE"))
#ifdef MSG_NO_CAN_SUBSCRIBE
return MSG_NO_CAN_SUBSCRIBE;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_CAN_SUBSCRIBE_REPLY"))
#ifdef MSG_NO_CAN_SUBSCRIBE_REPLY
return MSG_NO_CAN_SUBSCRIBE_REPLY;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_REFRESH_FAMILY"))
#ifdef MSG_NO_REFRESH_FAMILY
return MSG_NO_REFRESH_FAMILY;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_TRANS_ID"))
#ifdef MSG_NO_TRANS_ID
return MSG_NO_TRANS_ID;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_TRANS_MODE"))
#ifdef MSG_NO_TRANS_MODE
return MSG_NO_TRANS_MODE;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_TYPE_DEF"))
#ifdef MSG_NO_TYPE_DEF
return MSG_NO_TYPE_DEF;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_NO_TYPE_DEF_REPLY"))
#ifdef MSG_NO_TYPE_DEF_REPLY
return MSG_NO_TYPE_DEF_REPLY;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_PUBLISH_ERROR"))
#ifdef MSG_PUBLISH_ERROR
return MSG_PUBLISH_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_PUBLISH_REPLY_ERROR"))
#ifdef MSG_PUBLISH_REPLY_ERROR
return MSG_PUBLISH_REPLY_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_RETRIEVE_EVENT_TYPES"))
#ifdef MSG_RETRIEVE_EVENT_TYPES
return MSG_RETRIEVE_EVENT_TYPES;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_SET_EVENT_FIELD"))
#ifdef MSG_SET_EVENT_FIELD
return MSG_SET_EVENT_FIELD;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_SUBSCRIPTION_ERROR"))
#ifdef MSG_SUBSCRIPTION_ERROR
return MSG_SUBSCRIPTION_ERROR;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_TRANSACTION_COMMIT_MISSING"))
#ifdef MSG_TRANSACTION_COMMIT_MISSING
return MSG_TRANSACTION_COMMIT_MISSING;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_TRANSACTION_MODIFIED"))
#ifdef MSG_TRANSACTION_MODIFIED
return MSG_TRANSACTION_MODIFIED;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_TRANSACTION_NOACK"))
#ifdef MSG_TRANSACTION_NOACK
return MSG_TRANSACTION_NOACK;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_TRANSACTION_TIMEOUT"))
#ifdef MSG_TRANSACTION_TIMEOUT
return MSG_TRANSACTION_TIMEOUT;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_TRANS_LEVEL_MISMATCH"))
#ifdef MSG_TRANS_LEVEL_MISMATCH
return MSG_TRANS_LEVEL_MISMATCH;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_TRANS_MODE_NOT_SUPPORTED"))
#ifdef MSG_TRANS_MODE_NOT_SUPPORTED
return MSG_TRANS_MODE_NOT_SUPPORTED;
#else
goto not_there;
#endif
if (strEQ(name, "MSG_TRANS_NOT_ACTIVE"))
#ifdef MSG_TRANS_NOT_ACTIVE
return MSG_TRANS_NOT_ACTIVE;
#else
goto not_there;
#endif
break;
case 'N':
break;
case 'O':
break;
case 'P':
if (strEQ(name, "PLACE_HOLDER1"))
#ifdef PLACE_HOLDER1
return PLACE_HOLDER1;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER10"))
#ifdef PLACE_HOLDER10
return PLACE_HOLDER10;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER11"))
#ifdef PLACE_HOLDER11
return PLACE_HOLDER11;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER12"))
#ifdef PLACE_HOLDER12
return PLACE_HOLDER12;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER13"))
#ifdef PLACE_HOLDER13
return PLACE_HOLDER13;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER14"))
#ifdef PLACE_HOLDER14
return PLACE_HOLDER14;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER15"))
#ifdef PLACE_HOLDER15
return PLACE_HOLDER15;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER16"))
#ifdef PLACE_HOLDER16
return PLACE_HOLDER16;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER2"))
#ifdef PLACE_HOLDER2
return PLACE_HOLDER2;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER3"))
#ifdef PLACE_HOLDER3
return PLACE_HOLDER3;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER34"))
#ifdef PLACE_HOLDER34
return PLACE_HOLDER34;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER35"))
#ifdef PLACE_HOLDER35
return PLACE_HOLDER35;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER36"))
#ifdef PLACE_HOLDER36
return PLACE_HOLDER36;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER37"))
#ifdef PLACE_HOLDER37
return PLACE_HOLDER37;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER38"))
#ifdef PLACE_HOLDER38
return PLACE_HOLDER38;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER4"))
#ifdef PLACE_HOLDER4
return PLACE_HOLDER4;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER5"))
#ifdef PLACE_HOLDER5
return PLACE_HOLDER5;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER6"))
#ifdef PLACE_HOLDER6
return PLACE_HOLDER6;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER7"))
#ifdef PLACE_HOLDER7
return PLACE_HOLDER7;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER8"))
#ifdef PLACE_HOLDER8
return PLACE_HOLDER8;
#else
goto not_there;
#endif
if (strEQ(name, "PLACE_HOLDER9"))
#ifdef PLACE_HOLDER9
return PLACE_HOLDER9;
#else
goto not_there;
#endif
break;
case 'Q':
break;
case 'R':
break;
case 'S':
break;
case 'T':
break;
case 'U':
break;
case 'V':
break;
case 'W':
break;
case 'X':
break;
case 'Y':
break;
case 'Z':
break;
}
errno = EINVAL;
return 0;
not_there:
errno = ENOENT;
return 0;
}
char **
unshiftAndAvCharPtrPtr ( AV * strings, char * element )
{
char ** returnString;
int i = 0;
SV ** sv;
char * string;
int count = av_len ( strings ) + 2;
returnString = (char **)safemalloc ( count * sizeof( char * ) );
returnString[0] = strdup ( element );
for ( i=1; i<count; i++ ) {
sv = av_fetch ( strings, i-1, 0 ); /* non mortal sv, so no leak */
string = (char *)SvPV(*sv, PL_na);
returnString[i] = strdup ( string );
}
return ( returnString );
}
#ifdef NO_STRDUP
char *
strdup ( char * source )
{
char * target;
target = (char *)safemalloc ( sizeof(char) * ( strlen(source) + 1 ) );
strcpy ( target, source );
return ( target );
}
#endif /* NO_STRDUP */
awAdapterProperties *
awxsHashToProperties ( HV * hv )
{
awAdapterProperties * props = awNewAdapterProperties ();
char *key;
HE *entry;
SV *sv;
int i, n;
hv_iterinit ( hv );
n = HvKEYS( hv );
( run in 1.362 second using v1.01-cache-2.11-cpan-40ba7b3775d )