Beispiel #1
0
static void
dlseterror_from_exception(volatile _INTRPT_Hndlr_Parms_T * excp)

{
    int i;
    Qmh_Rtvm_RTVM0300_t * imp;
    char * cp;
    _INTRPT_Hndlr_Parms_T * p;
    dlts_t * q;
    char rtvmbuf[30000];
    Qus_EC_t errinfo;

    p = (_INTRPT_Hndlr_Parms_T *) excp;
    errinfo.Bytes_Provided = 0;             /* Exception on error. */
    QMHRTVM(rtvmbuf, sizeof rtvmbuf, "RTVM0300", p->Msg_Id,
            "QCPFMSG   QSYS      ", p->Ex_Data, p->Msg_Data_Len,
            "*YES      ", "*NO       ", &errinfo);
    imp = offset_by(Qmh_Rtvm_RTVM0300_t, rtvmbuf, 0);

    if (!(dlflags & MULTIBUF))
        q = &static_buf;
    else if (!(q = (dlts_t *) pthread_getspecific(dlkey)))
        q = &static_buf;

    if (i = imp->Length_Message_Returned)
        cp = offset_by(char, imp, imp->Offset_Message_Returned);
    else if (i = imp->Length_Help_Returned)
Beispiel #2
0
bool localMsg(char * msgId
              ,       XMLCh* const            toFill
              , const unsigned int            maxChars
              ,		char*		    repTexts
              ,		int		    size)
{

    typedef _Packed struct {
        Qmh_Rtvm_RTVM0100_t mdata;        /* Basic Message Data                  */
        char                mtext[1024];  /* Kind of arbitrary, enough?      */
    } MyMessage_t;

    /* Information about the message that we're going to retrieve               */
    char         msgformat[9]  = "RTVM0100";
    char         msgfile[21]   = "QXMLMSG   *LIBL     ";
    char	 *msgsubstdta  = repTexts;		// ??
    int	  msgsubstlen = 0;
    if(repTexts)
        msgsubstlen = size;  //strlen(repTexts);	// ??
    char         msgsubst[11]  = "*YES      ";
    char         msgfmtctl[11] = "*NO       ";
    Qus_EC_t     errorcode;
    MyMessage_t  message;                 /* message we'll retrieve        */


    memset(&errorcode, 0, sizeof(errorcode));    /* Clear the error area   */
    errorcode.Bytes_Provided = sizeof(errorcode);/* Init the error code    */

    memset(&message, 0, sizeof(message.mdata));  /* Clear the message area */
    message.mtext[0]='\0';                       /* Null Text String       */

    int len = sizeof(message);
    for(int i = 0; i < 1024; i++)
        message.mtext[i] = '\0';

    QMHRTVM( &message, len, msgformat, msgId,
             msgfile, msgsubstdta, msgsubstlen, msgsubst, msgfmtctl, &errorcode);  /*,
	   "*MSGID    ", 1200, 1200);  */

    /* The error message should now be stored in message.mtext */
    /* with the CCSID 1200					    */

//    char msgString[100];
//    char* catMessage = catgets( fCatalogHandle, msgSet, (int)msgToLoad, msgString);
    XMLString::transcode(message.mtext, toFill, maxChars);

    return true;
}