MQSeries

 view release on metacpan or  search on metacpan

MQClient/MQSeries.xs.in/21core  view on Meta::CPAN

 */

MODULE = __APITYPE__::MQSeries		PACKAGE = __APITYPE__::MQSeries		

PROTOTYPES: DISABLE

void
constant_hex(name)
	char *		name

	PPCODE:
	{
	SV		*Return;
	MQULONG		 Result;

	Result = constant_hex(name);

	if ( errno ) 
	  XSRETURN_UNDEF;
	else {
	  Return = sv_newmortal();
	  sv_setuv(Return, (UV)Result);	
	  XPUSHs(Return);
	}

	}

void
constant_numeric(name)
	char *		name

	PPCODE:
	{
	SV		*Return;
	MQLONG		Result;

	Result = constant_numeric(name);

	if ( errno ) 
	  XSRETURN_UNDEF;
	else {
	  Return = sv_newmortal();
	  sv_setiv(Return, (IV)Result);	
	  XPUSHs(Return);
	}

	}

void
constant_string(name)
	char *		name

	PPCODE:
	{
	char	tmp[256];
	int	status;
	SV	*Return;

	if ( (status = constant_string(name,tmp)) != 0 ) {
	  Return = sv_newmortal();
	  sv_setpv(Return, tmp);	
	  XPUSHs(Return);
	} else {
	  XSRETURN_UNDEF;
	}

	}

void
constant_char(name)
	char *		name

	PPCODE:
	{
	char	tmp[1];
	int	status;
	SV	*Return;

	if ( (status = constant_char(name,tmp)) != 0 ) {
	  Return = sv_newmortal();
	  sv_setpvn(Return, tmp, 1);	
	  XPUSHs(Return);
	} else {

MQClient/MQSeries.xs.in/32MQOPEN-v5  view on Meta::CPAN

        AV     *ResponseRecArray;
        HV     *ObjectRecsHashEntry, *ResponseRecHash;
        PMQRR   pResponseRecPtr = NULL;
        PMQOR   pObjectRecPtr;
        char   *String;
        STRLEN  StringLength;
        int     index;
#ifdef MQOD_VERSION_4
	MQCHAR  resolved_object_string[MQ_TOPIC_STR_LENGTH];
#endif
    PPCODE:
        CompCode = MQCC_FAILED;
        Reason = MQRC_UNEXPECTED_ERROR;
        sv_setiv(ST(3),(IV)CompCode);
        sv_setiv(ST(4),(IV)Reason);

        /*
          If there is a list of ObjectRecs, then we are dealing with a
          distribution list.
         */

MQClient/MQSeries.xs.in/33MQINQ  view on Meta::CPAN

        MQLONG    CharAttrLength = 0;
        PMQCHAR   pCharAttrs = (PMQCHAR)0L;
        SV       *tempSV = (SV *)0;
        SV      **svp;
        MQLONG    loop = 0;
        MQLONG    tempSelector = 0;
        int       tempLen = 0;
        char      attrKey[8];
        HV       *AttributeLengthHV;

    PPCODE:
        /*
         * Initialize these for the various random failure cases.
         */
        CompCode = MQCC_FAILED;
        Reason = MQRC_UNEXPECTED_ERROR;
        sv_setiv(ST(2),(IV)CompCode);
        sv_setiv(ST(3),(IV)Reason);

        if ( (AttributeLengthHV = perl_get_hv("MQSeries::Constants::AttributeLength",0)) == NULL ) {
            warn("Unable to access %%MQSeries::Constants::AttributeLength hash\n");

MQClient/MQSeries.xs.in/34MQPUT-v5  view on Meta::CPAN

        PMQRR     pResponseRecPtr = NULL;
        PMQCHAR   Buffer;

        SV      **svp;
        AV       *PutMsgRecs, *ValidPutMsgRecFieldsArray;
        AV       *ResponseRecArray;
        HV       *PutMsgRecFields = NULL, *PutMsgRecHash;
        HV       *ValidPutMsgRecFieldsHash;
        HV       *ValidPutMsgRecFieldsSubHash, *ResponseRecHash;

    PPCODE:
        CompCode = MQCC_FAILED;
        Reason = MQRC_UNEXPECTED_ERROR;
        sv_setiv(ST(5),(IV)CompCode);
        sv_setiv(ST(6),(IV)Reason);

        /*
         * We set the MQMD version to 2, so users of segmentation or
         * grouping won't have to do this manually.
         */
        if (MsgDesc.Version < MQMD_VERSION_2) {

MQClient/MQSeries.xs.in/35MQPUT1-v5  view on Meta::CPAN

        char    *Key, *pPutMsgRecPtr = NULL, *String;
        STRLEN   KeyLength, StringLength;
        int      index, subindex;
        size_t   FieldSize;
        int      PutMsgRecSize = 0;
        PMQCHAR  Buffer;
#ifdef MQOD_VERSION_4
	MQCHAR  resolved_object_string[MQ_TOPIC_STR_LENGTH];
#endif

    PPCODE:
        CompCode = MQCC_FAILED;
        Reason = MQRC_UNEXPECTED_ERROR;
        sv_setiv(ST(5),(IV)CompCode);
        sv_setiv(ST(6),(IV)Reason);

        /*
         * We set the MQMD version to 2, so users of segmentation or
         * grouping won't have to do this manually.
         */
        if (MsgDesc.Version < MQMD_VERSION_2) {

MQSeries-Message-DeadLetter/DeadLetter.xs  view on Meta::CPAN

void
MQDecodeDeadLetter(pBuffer,BufferLength)
	PMQCHAR pBuffer;
	MQLONG  BufferLength;

    PREINIT:
        PMQCHAR  pTemp;
        HV      *HeaderHV;
	SV      *DataSV;
	MQDLH    Header;
    PPCODE:
        pTemp = pBuffer;
        if ( BufferLength < sizeof(MQDLH) ) {
	    warn("MQDecodeDeadLetter: BufferLength is smaller than the MQDLH.\n");
	    XSRETURN_EMPTY;
	}
        
        Header = *(MQDLH *)pTemp;
        pTemp += sizeof(MQDLH);
	  
	HeaderHV = newHV();

MQSeries-Message-DeadLetter/DeadLetter.xs  view on Meta::CPAN



void
MQEncodeDeadLetter(Header,pData,DataLength)
     	MQDLH   Header;
	PMQCHAR pData;
	MQLONG	DataLength;

    PREINIT:	
	SV *Result;
    PPCODE:
	Result = newSVpv((char *)&Header,sizeof(MQDLH));
	sv_catpvn(Result,(char *)pData,DataLength);
	XPUSHs(sv_2mortal(Result));

MQSeries-Message-PCF/PCF.xs  view on Meta::CPAN

#define SCNdLEAST64 SCNd64
#endif /* defined(SCNd64) */
#endif /* defined(SCNdLEAST64) */

MODULE = MQSeries::Message::PCF         PACKAGE = MQSeries::Message::PCF

void
MQDecodePCF(pBuffer)
     PMQCHAR pBuffer;

     PPCODE:
     {
         PMQCHAR   pTemp = pBuffer;
         PMQCHAR   pSListTemp;
         MQCFST   *pStringParam;
#ifdef MQCFT_STRING_FILTER
         MQCFSF   *pStringFilter;
#endif
#ifdef MQCFT_BYTE_STRING
         MQCFBS   *pByteStringParam;
#endif

MQSeries-Message-PCF/PCF.xs  view on Meta::CPAN


         XPUSHs(sv_2mortal(newRV_noinc((SV *)DataAV)));
     }


void
MQEncodePCF(Header,ParameterList)
        MQCFH   Header;
        AV*     ParameterList = (AV*)SvRV(ST(1));

        PPCODE:
        {

          IV Type;
          SV *Result, *ParameterResult, **svp;
          AV *ValuesAV, *StringsAV;
#ifdef MQCFT_GROUP
          AV *GroupAVA;
#endif /* MQCFT_GROUP */
          HV *ParameterHV;



( run in 0.810 second using v1.01-cache-2.11-cpan-5511b514fd6 )