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 |