RXS_GetStmf()

This subprocedure retrieves up to 16MB of data from a specified IFS stream file.

Subprocedure Prototype

     D RXS_GetStmf...
     D                 PR                  Extproc('RXS_GetStmf') Opdesc
     D                                     Like(RXS_Var16Mv_t)
     D                                     Rtnparm

Returns data retrieved from the specified IFS stream file.

     D   DS                                Likeds(RXS_GetStmfDS_t)

RXS_GetStmfDS_t data structure used to configure the RXS_GetStmf() call and specify the IFS stream file to read.

     D RXS_GetStmf...
     D                 PR                  Extproc('RXS_GetStmf')

     D   Output                            Like(RXS_Var16Mv_t)
     D                                     Options(*Omit:*Varsize)

Holds the data retrieved from the specified IFS stream file.

     D   DS                                Likeds(RXS_GetStmfDS_t)
     D                                     Options(*Varsize)

RXS_GetStmfDS_t data structure used to configure the RXS_GetStmf() call and specify the IFS stream file to read.

Example Code

      *--------------------------------------------------------------
      * This example code reads the contents of the file 
      * /tmp/rxs_getstmf.txt into the Data field.
      *--------------------------------------------------------------
     H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

      /copy QRPGLECPY,RXSCB

     D GetStmfDS       DS                  LikeDS(RXS_GetStmfDS_t)
     D Data            S                   Like(RXS_Var64Kv_t)
      /free

       RXS_ResetDS( GetStmfDS : RXS_DS_TYPE_GETSTMF );
       GetStmfDS.Stmf = '/tmp/rxs_getstmf.txt';
       Data = RXS_GetStmf( GetStmfDS );
       *INLR = *ON;

      /end-free
      *--------------------------------------------------------------
      * This example code reads the contents of the file 
      * /tmp/rxs_getstmf.txt and outputs the entire file to STDOUT, 
      * even if the length of the file is greater than the Data variable.
      *--------------------------------------------------------------
     H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

      /copy QRPGLECPY,RXSCB

     D GetStmfDS       DS                  LikeDS(RXS_GetStmfDS_t)
     D Data            S                   Like(RXS_Var64Kv_t)
      /free

       RXS_ResetDS( GetStmfDS : RXS_DS_TYPE_GETSTMF );
       GetStmfDS.Stmf = '/tmp/rxs_getstmf.txt';
       GetStmfDS.ChunkedLength = %size(Data - 4);
       Dou %len(Data) = 0;
         Data = RXS_GetStmf( GetStmfDS );
         RXS_PutStdOut( Data );
       Enddo;
       *INLR = *ON;

      /end-free
      *--------------------------------------------------------------
      * This example code reads the contents of the file 
      * /tmp/rxs_getstmf.txt into the Data field.
      *--------------------------------------------------------------
     H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

      /define RXSV6R1
      /copy QRPGLECPY,RXSCB

     D GetStmfDS       DS                  LikeDS(RXS_GetStmfDS_t)
     D Data            S                   Like(RXS_Var64Kv_t)
      /free

       RXS_ResetDS( GetStmfDS : RXS_DS_TYPE_GETSTMF );
       GetStmfDS.Stmf = '/tmp/rxs_getstmf.txt';
       RXS_GetStmf( Data : GetStmfDS );
       *INLR = *ON;

      /end-free
      *--------------------------------------------------------------
      * This example code reads the contents of the file 
      * /tmp/rxs_getstmf.txt and outputs the entire file to STDOUT, 
      * even if the length of the file is greater than the Data variable.
      *--------------------------------------------------------------
     H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

      /define RXSV6R1
      /copy QRPGLECPY,RXSCB

     D GetStmfDS       DS                  LikeDS(RXS_GetStmfDS_t)
     D Data            S                   Like(RXS_Var64Kv_t)
      /free

       RXS_ResetDS( GetStmfDS : RXS_DS_TYPE_GETSTMF );
       GetStmfDS.Stmf = '/tmp/rxs_getstmf.txt';
       GetStmfDS.ChunkedLength = %size(Data - 4);
       Dou %len(Data) = 0;
         RXS_GetStmf( Data : GetStmfDS );
         RXS_PutStdOut( Data );
       Enddo;  
       *INLR = *ON;

      /end-free

Data Structures

     D RXS_GetStmfDS_t...
     D                 DS                  Qualified Template Inz

     D   ReturnedErrorInfo...
     D                                     LikeDS(RXS_ReturnedErrorInfoDS_t) Inz

     D   DataStructureType...
     D                                5I 0 Inz(RXS_DS_TYPE_GETSTMF)

Internal use only

     D   OnErrorMessageType...
     D                                5I 0

     D   Stmf                              Like(RXS_Var1Kv_t)

Specifies IFS path to a stream file to retrieve.

     D   ToCcsid                     10I 0

The CCSID to convert the data read from the IFS stream file into.

     D   OutputPointer...
     D                                 *   Inz(*Null)

Internal use only

     D   OutputLength                10I 0

Internal use only

     D   StmfSize                    10I 0

This is a returned value containing the number of bytes stored in the stream file.

     D   ChunkedLength...
     D                               10I 0

The length to use when "chunks" of the stream file are to be returned. See example 2.

     D   ChunkedOffset...
     D                              128A

Internal use only