W2PC - Web2.0 ATOMPARAMETERS container

       DESCRIPTIVE NAME = Web 2.0 Sample - ATOMPARAMETERS container
          Licensed Materials - Property of IBM
          CICS SupportPac CA8K
          (c) Copyright IBM Corporation 2008 All Rights Reserved
          US Government Users Restricted Rights - Use, duplication
          or disclosure restricted by GSA ADP Schedule Contract
          with IBM Corporation
       DESCRIPTION
        This copybook maps the parameters passed in the ATOMPARAMETERS
        container from DFH$W2FD to the resource service routine.
        Each parameter passed in this container is a pointer to an
        eight byte area. The first parameter is a pointer to a
        64-bit options string, whose definition is mapped by the
        ATMP_OPTIONS_BITS dsect. The second parameter is a pointer to
        two fullwords in which the response and reason code can be
        returned. The remaining parameters are pointers to
        pointer+length structures, in which the first word contains a
        pointer to the parameter's value and the second word contains
        its length.
        The parameters in the containmer are as follows:
         ATMP_OPTIONS
            Address of a double word containing 64 option bits.
            The first word is used to send options to the service
            routine, and the second word is used to receive
            options from the service routine.
         ATMP_RESPONSE
            Address of a double word in which the response and
            reason code can be returned. These are both
            initialized to zero, indicating successful completion.
         ATMP_RESNAME
            Address of a double word containing a pointer to the
            CICS resource name, followed by its length.
         ATMP_RESTYPE
            Address of a double word containing a pointer to the
            CICS resource type name in uppercase, followed by
            its length. The type can be PROGRAM, TSQUEUE, or FILE.
         ATMP_ATOMTYPE
            Address of a double word containing a pointer to the
            type of Atom document being processed, in lowercase,
            followed by its length. It is either entry or feed.
         ATMP_ATOMID
            Address of a double word containing a pointer to the
            unique Atom request identifier (from the atom:id
            element), followed by its length.
         ATMP_SELECTOR
            Address of a double word containing a pointer to the
            selector value from the URL, followed by its length.
            This parameter is used to select the record within
            the CICS resource that is to be accessed. In this
            implementation, the selector is the operand of
            the "s=" keyword within the querystring section
            of the URL.
         ATMP_HTTPMETH
            Address of a double word containing a pointer to the
            the HTTP method padded, followed by its length
            It is GET, POST, PUT or DELETE.
         ATMP_RLM
            Address of a double word containing a pointer to the
            Resource Layout Mapping area, followed by its length.
         ATMP_MTYPEIN
            Address of a double word containing a pointer to the
            the mediatype of the incoming HTTP request body,
            if any, followed by its length. It is only meaningful
            if the HTTP method is POST or PUT, otherwise the
            pointer and length are both zero.
         ATMP_MTYPEOUT
            Address of a double word containing a pointer to an
            area in which the routine must return the mediatype of
            the data being returned in the ATOMCONTENT container,
            followed by the length of that area (56 bytes).
         ATMP_UPDATED
            Address of a double word containing a pointer to an
            area in which the routine must return the date and
            time at which the returned document was last updated,
            followed by the length of that area (32 bytes).
            The value must be returned in xs:dateTime format,
            which is the same as RFC3339 format, namely
            yyyy-mm-ddThh:mm:ss.fffZ, or as spaces. (The .fff
            fractional seconds are optional, and may be omitted.)
            If spaces are returned, the currect time is assumed.
         ATMP_ETAGVAL
            Address of a double word containing a pointer to the
            Etag value for the selected record, followed by its
            length. The Etag (or entity tag) is any string
            that can be used to identify the record instance
            uniquely. It could be based on an accurate timestamp
            or version number, but in this implementation it is
            the hexadecimal value of the binary checksum of the
            record derived by the CKSM machine instruction.
            The checksum may theoretically sometimes be the same
            for different record instances, but this is likely to
            be rare. It is "probably good enough" for its primary
            purposeof guarding against the updating of data in a
            PUT operation that was derived from data that was
            previously obtained in a GET operation but is now
            stale (i.e. it was updated by someone else since the
            GET request had completed).
         ATMP_WINSIZE
            Address of a double word containing a pointer to the
            feed window size, followed by its length. The value
            is a numeric string that contains the default number
            of entries to be returned in each feed,
         ATMP_NEXTSEL
            Address of a double word into which the service
            routine should set a pointer and length of a selector
            value for the next record in the resource, if any.
         ATMP_PREVSEL
            Address of a double word into which the service
            routine should set a pointer and length of a selector
            value for the previous record in the resource, if any.
         ATMP_FIRSTSEL
            Address of a double word into which the service
            routine should set a pointer and length of a selector
            value for the first (newest) record in the resource,
            if any.
         ATMP_LASTSEL
            Address of a double word into which the service
            routine should set a pointer and length of a selector
            value for the last (oldest) record in the resource,
            if any.
         ATMP_ID_FLD
            Address of a double word containing a pointer to the
            NAME OF THE FIELD within the resource that contains
            the atom identifier (from the atom:id element), if
            present, followed by its length. If it is present,
            the service routine should use this named field to
            store the contents of the atom:id element.
         ATMP_UPDATED_FLD
            Address of a double word containing a pointer to
            the NAME OF THE FIELD within the resource that
            contains the time when the resource was last updated,
            if present, followed by its length. If no such field
            exists, the pointer and length are both zero.
            If it is present, the service routine should use this
            named field to locate the value of the timestamp that
            can be used to construct the value returned in the
            UPDATED parameter. This may be all spaces if the
            resource does not contain such a field.
         ATMP_KEY_FLD
            Address of a double word containing a pointer to the
            NAME OF THE FIELD within the resource that contains
            the key (RIDFLD) for File Control operations, if any,
            followed by its length. Only relevant when the
            resource type is FILE.
         ATMP_TITLE_FLD
            Address of a double word containing a pointer to
            the NAME OF THE FIELD within the resource that
            contains the Atom title of the represented entry,
            if present, followed by its length.
            If it is present, the service routine should use this
            named field to locate the entry title, and return it
            in the ATOMTITLE container.
         ATMP_SUBTITLE_FLD
            Address of a double word containing a pointer to
            the NAME OF THE FIELD within the resource that
            contains the Atom subtitle of the represented entry,
            if present, followed by its length.
            If it is present, the service routine should use this
            named field to locate the entry subtitle, and return
            it in the ATOMSUBTITLE container.
         ATMP_SUMMARY_FLD
            Address of a double word containing a pointer to
            the NAME OF THE FIELD within the resource that
            contains the Atom summary of the represented entry,
            if present, followed by its length.
            If it is present, the service routine should use this
            named field to locate the entry summary, and return
            it in the ATOMSUMMARY container.
Table 1.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 100 ATMP_PARAMETER_LIST
(0) ADDRESS 4 ATMP_OPTIONS Address of 64-bit options bitmap
(4) ADDRESS 4 ATMP_RESPONSE Address of response/reason doubleword
(8) ADDRESS 4 ATMP_RESNAME Address of resource name ptr/length
(C) ADDRESS 4 ATMP_RESTYPE Address of resource type ptr/length
(10) ADDRESS 4 ATMP_ATOMTYPE Address of atom document type ptr/len
(14) ADDRESS 4 ATMP_ATOMID Address of atom id ptr/length
(18) ADDRESS 4 ATMP_SELECTOR Address of entry selector ptr/length
(1C) ADDRESS 4 ATMP_HTTPMETH Address of HTTP mathod ptr/length
(20) ADDRESS 4 ATMP_RLM Address of Resource Layout Mapping pt/ln
(24) ADDRESS 4 ATMP_MTYPEIN Address of inbound mediatype ptr/length
(28) ADDRESS 4 ATMP_MTYPEOUT Address of outbound mediatype ptr/len
(2C) ADDRESS 4 ATMP_UPDATED Address of updated timestamp ptr/len
(30) ADDRESS 4 ATMP_ETAGVAL Address of Etag value ptr/len
(34) ADDRESS 4 ATMP_WINSIZE Address of window size ptr/len
(38) ADDRESS 4 ATMP_NEXTSEL Address of next feed selector ptr/len
(3C) ADDRESS 4 ATMP_PREVSEL Address of prev feed selector ptr/len
(40) ADDRESS 4 ATMP_FIRSTSEL Address of first feed selector ptr/len
(44) ADDRESS 4 ATMP_LASTSEL Address of last feed selector ptr/len
(48) ADDRESS 4 ATMP_ID_FLD Address of atom id fieldname ptr/len
(4C) ADDRESS 4 ATMP_UPDATED_FLD Address of updated fieldname ptr/len
(50) ADDRESS 4 ATMP_KEY_FLD Address of key fieldname ptr/length
(54) ADDRESS 4 ATMP_TITLE_FLD Address of title fieldname ptr/length
(58) ADDRESS 4 ATMP_SUBTITLE_FLD Address of subtitle fieldname ptr/len
(5C) ADDRESS 4 ATMP_SUMMARY_FLD Address of summary fieldname ptr/len
(60) ADDRESS 4 ATMP_PARAMETER_25 Address of URM parameter 25 (unused)
Table 2.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 8 ATMP_RESPONSES Addressed by ATMP_RESPONSE
(0) UNSIGNED 4 ATMP_RESPONSE_CODE Response code
(4) UNSIGNED 4 ATMP_REASON_CODE Reason code
Table 3.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 8 ATMP_PARAMETER Parameter locator double word
(0) ADDRESS 4 ATMP_PARAMETER_PTR Parameter address
(4) FULLWORD 4 ATMP_PARAMETER_LEN Parameter length
Table 4.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 8 ATMP_OPTIONS_BITS Bits addressed by ATMP_OPTIONS
(0) BIT(32) 4 ATMP_OPTIONS_INBIT
(4) BIT(32) 4 ATMP_OPTIONS_OUTBIT
(4) BIT(8) 1 ATMP_OUTOPT_BYTE0 High byte not usable in COBOL
(5) BIT(8) 1 ATMP_OUTOPT_BYTE1
(5) 1... ....   OPTTITLE ATOMTITLE container returned
(5) .1.. ....   OPTSUBTI ATOMSUBTITLE container returned
(5) ..1. ....   OPTSUMMA ATOMSUMMARY container returned
(5) ...1 1111   *
(6) BIT(8) 1 ATMP_OUTOPT_BYTE2
(7) BIT(8) 1 ATMP_OUTOPT_BYTE3
Table 5.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 8 ATMP_OPTIONS_WORDS Words addressed by ATMP_OPTIONS
(0) UNSIGNED 4 ATMP_OPTIONS_IN Input request bits (not used)
(4) UNSIGNED 4 ATMP_OPTIONS_OUT Output response bits