ASAP 2.7 Extension Manual
Implementing the ASAP Extension in an Application
HP NonStop ASAP Extension Manual—425265-004
4-9
ASAP_REGISTER_ Procedure
Syntax for C Programmers
#include ASAPXH(ASAP_REGISTER_)
/* #pragma asap_register_ */
_tal _extensible short asap_register_ (
const char _far *, /* IN REQUIRED */
/* Application domain name being registered */
short , /* IN REQUIRED */
/* domain name length */
long _far *, /* OUT */
/* Shared memory segment offset for this domain */
short _far *, /* OUT OPTIONAL */
/* Detailed error */
short , /* IN OPTIONAL */
/* Segment to be used by this registration */
/* procedure. Required when this application */
/* previously called SEGMENT_ALLOCATE_ */
short , /* IN OPTIONAL */
/* Process version number */
const char _far *, /* IN OPTIONAL */
/* 1-3 char prefix used by ASAPXMON when the */
/* default ASAP id is not used */
short , /* IN OPTIONAL */
/* Length of ASAP ID */
short , /* IN OPTIONAL */
/* Flags word, flags.<15> = rank disabled */
/* flags.<14> = do not concat process to domain*/
long /* IN OPTIONAL */
/* ASAPXMON I/O timeout in .01 second increments*/
);
Register Call Examples
Example 1 – Normal Registration
int(32) seg^offset
,.ext s^offset
;
int error
,version
;
string domain^name[0:63] !max 64 bytes
.ptr
;
@s^offset := $xadr(seg^offset);
domain^name ‘:=’ “ “ & domain^name for 26; !load domain
domain^name ‘:=’ “ATM\WTHDRW\ZEIST” ->@ptr;
version := “AA”; !set version
if (error := ASAP_REGISTER_( domain^name:(@ptr - @domain^name)
, s^offset
,!error^detail!
,!segment^id!
,!segment^base!
,version
,!asap^id:id^len!
,!flags! )) <> 0 then begin
updates := false; !not ok, set updates off
call write(ems^collector,error^message…..
end;