home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / o22516d1.zip / DSDEMO.@IP / DSCLIENT.CBL < prev    next >
Text File  |  1992-07-29  |  4KB  |  113 lines

  1.       $SET MF
  2.        IDENTIFICATION DIVISION.
  3.        ENVIRONMENT DIVISION.
  4.        CONFIGURATION SECTION.
  5.        SPECIAL-NAMES.
  6.        CALL-CONVENTION 3 IS API.
  7.        WORKING-STORAGE SECTION.
  8.        01  LOCALS.
  9.            03  INFO1                   PIC X(80).
  10.            03  MAX-LENGTH              PIC X(4)    COMP-5 VALUE 0.
  11.            03  WS-LENGTH               PIC X(4)    COMP-5 VALUE 0.
  12.            03  MACHINE-NAME            PIC X(21)   VALUE SPACES.
  13.            03  SERVER-NAME             PIC X(8)    VALUE "CCIECI".
  14.            03  SESSION-ID              PIC X(4)    COMP-5 VALUE 0.
  15.  
  16.        COPY CCISIGNA.
  17.  
  18.        LINKAGE SECTION.
  19.        COPY CCITABLE.
  20.        COPY COMMAREA.
  21.  
  22.        PROCEDURE DIVISION USING COMM-AREA.
  23.            MOVE ZERO   TO COMM-RETURN
  24.            MOVE SPACES TO COMM-MESSAGE
  25.            EVALUATE COMM-REQUEST
  26.                WHEN 1 PERFORM 100-BEGIN
  27.                WHEN 2 PERFORM 200-SEND
  28.                WHEN 3 PERFORM 200-SEND
  29.                       PERFORM 300-CLOSE
  30.                WHEN OTHER DISPLAY 'COMM-REQUEST ERROR'
  31.            END-EVALUATE
  32.            GOBACK
  33.            .
  34.       ****************************************************************
  35.        100-BEGIN SECTION.
  36.            MOVE LENGTH OF COMM-AREA TO MAX-LENGTH
  37.                                        WS-LENGTH
  38.            CALL API "CCINAMP" USING BY REFERENCE SIGNATURE-BLOCK
  39.            IF CCITYPE NOT = "NAMP"
  40.                MOVE 'ERROR IN CCI SIGNATURE' TO COMM-MESSAGE
  41.                MOVE 1 TO COMM-RETURN
  42.                GOBACK
  43.            END-IF
  44.  
  45.            SET ADDRESS OF CALTAB TO CCICALTAB
  46.            CALL API CCI-INITCLIENT USING BY REFERENCE SERVER-NAME
  47.                                          BY REFERENCE MACHINE-NAME
  48.                                          BY REFERENCE SESSION-ID
  49.                                          BY VALUE 0 SIZE 4
  50.                                          BY VALUE 0 SIZE 4
  51.            IF RETURN-CODE NOT = 0
  52.                PERFORM 900-GET-CCI-ERROR
  53.                GOBACK
  54.            END-IF
  55.  
  56.            CALL API CCI-SUSPENDCLIENT USING BY VALUE SESSION-ID
  57.            IF RETURN-CODE NOT = 0
  58.                PERFORM 900-GET-CCI-ERROR
  59.                GOBACK
  60.            END-IF
  61.            .
  62.       ****************************************************************
  63.        200-SEND SECTION.
  64.            SET ADDRESS OF CALTAB TO CCICALTAB
  65.            CALL API CCI-RESUMECLIENT USING BY VALUE SESSION-ID
  66.                                            BY VALUE 0 SIZE 4
  67.                                            BY VALUE 0 SIZE 4
  68.            IF RETURN-CODE NOT = 0
  69.                PERFORM 900-GET-CCI-ERROR
  70.                GOBACK
  71.            END-IF
  72.  
  73.            CALL API CCI-SEND USING BY VALUE SESSION-ID
  74.                                    BY REFERENCE COMM-AREA
  75.                                    BY VALUE WS-LENGTH
  76.                                    BY VALUE 0 SIZE 4
  77.                                    BY VALUE 0 SIZE 4
  78.  
  79.            CALL API CCI-RECEIVE USING BY VALUE SESSION-ID
  80.                                       BY REFERENCE COMM-AREA
  81.                                       BY VALUE MAX-LENGTH
  82.                                       BY REFERENCE WS-LENGTH
  83.                                       BY VALUE 0 SIZE 4
  84.                                       BY VALUE 0 SIZE 4
  85.            IF RETURN-CODE NOT = 0
  86.                PERFORM 900-GET-CCI-ERROR
  87.                GOBACK
  88.            END-IF
  89.  
  90.            CALL API CCI-SUSPENDCLIENT USING BY VALUE SESSION-ID
  91.            IF RETURN-CODE NOT = 0
  92.                PERFORM 900-GET-CCI-ERROR
  93.                GOBACK
  94.            END-IF
  95.            .
  96.       ****************************************************************
  97.        300-CLOSE SECTION.
  98.            CALL API CCI-CLOSECLIENT USING BY VALUE SESSION-ID
  99.            IF RETURN-CODE NOT = 0
  100.                PERFORM 900-GET-CCI-ERROR
  101.                GOBACK
  102.            END-IF
  103.            .
  104.       ****************************************************************
  105.        900-GET-CCI-ERROR SECTION.
  106.            MOVE 1 TO COMM-RETURN
  107.            MOVE LENGTH OF INFO1 TO WS-LENGTH
  108.            CALL API CCI-GETERROR USING BY REFERENCE INFO1
  109.                                        BY VALUE MAX-LENGTH
  110.                                        BY REFERENCE WS-LENGTH
  111.            MOVE INFO1 TO COMM-MESSAGE
  112.            .
  113.