Annotation of 43BSDReno/contrib/isode-beta/psap2/libpsap2.3n, revision 1.1.1.1

1.1       root        1: .TH LIBPSAP2 3N "31 May 1988"
                      2: .\" $Header: /f/osi/psap2/RCS/libpsap2.3n,v 7.0 89/11/23 22:14:11 mrose Rel $
                      3: .\"
                      4: .\"
                      5: .\" $Log:      libpsap2.3n,v $
                      6: .\" Revision 7.0  89/11/23  22:14:11  mrose
                      7: .\" Release 6.0
                      8: .\" 
                      9: .SH NAME
                     10: libpsap2 \- Presentation Services library
                     11: .SH SYNOPSIS
                     12: .B "#include <isode/psap2.h>"
                     13: .sp
                     14: \fIcc\fR\0...\0\fB\-lpsap2\fR
                     15: .SH DESCRIPTION
                     16: The \fIlibpsap2\fR library contains a set of routines which implement the
                     17: presentation services.
                     18: In essence,
                     19: they implement a Presentation Service Access Point (PSAP) interface for
                     20: user applications.
                     21: This manual page describes only the interface to the Basic Combined Subset
                     22: (BCS) of session which is available for presentation;
                     23: consult the \fIUser's Manual\fR for the full details on the entire PSAP
                     24: interface, which supports the entire presentation service.
                     25: Note well:
                     26: before using presentation services,
                     27: an understanding of the underlying session services is necessary.
                     28: .PP
                     29: Although the ISO model is symmetric,
                     30: this implementation is based on a client/server paradigm and hence asymmetric.
                     31: The information herein is skeletal:
                     32: consult the \fIUser's Manual\fR for actual examples of how ISO servers and
                     33: clients are coded and interact with the \fIlibpsap2\fR library.
                     34: .SH ADDRESSES
                     35: PSAP addresses are represented by the \fBPSAPaddr\fR structure.
                     36: This contains a session address,
                     37: and a presentation-selector as found in the \fIisoservices\fR\0(5)
                     38: database.
                     39: .SH "SERVER INITIALIZATION"
                     40: A program providing an ISO service is usually invoked under \fItsapd\fR\0(8c),
                     41: with the argument vector listed in the ISODE services database.
                     42: The server's very first action is to re\-capture the PSAP state as
                     43: recorded by \fItsapd\fR.
                     44: This is accomplished by calling \fBPInit\fR.
                     45: Information returned by this call is equivalent to the parameters passed by a
                     46: P\-CONNECTION.INDICATION event.
                     47: If the call is successful,
                     48: the program can then examine the argument vector that was passed via
                     49: \fIexecvp\fR
                     50: (it's important to call \fBPInit\fR prior to reading \fBargc\fR and
                     51: \fBargv\fR).
                     52: If the call to \fBPInit\fR is not successful,
                     53: information returned by the call indicates the reason for failure.
                     54: .PP
                     55: After examining the information provided by \fBPInit\fR
                     56: (and possibly the argument vector),
                     57: the server should either accept or reject the connection.
                     58: If accepting, the \fBPConnResponse\fR routine is called with the parameter
                     59: \fBresult\fR set to \fBPC_ACCEPT\fR.
                     60: (which corresponds to the accepting P\-CONNECT.RESPONSE action).
                     61: If the call is successful,
                     62: the interaction is henceforth symmetric.
                     63: If un\-successful,
                     64: information returned by the call indicates the reason for failure.
                     65: If rejecting, the \fBPConnResponse\fR routine is also called,
                     66: but with the parameter \fBresult\fR set to \fBPC_REJECTED\fR.
                     67: (which corresponds to the refusing P\-CONNECT.RESPONSE action),
                     68: and the program may exit.
                     69: .SH "CLIENT INITIALIZATION"
                     70: A program requesting an ISO service calls \fBPConnRequest\fR
                     71: (which corresponds to the P\-CONNECT.REQUEST action).
                     72: If successful (depending on the responder's choice of \fBresult\fR),
                     73: the interaction is henceforth symmetric.
                     74: If un\-successful,
                     75: information returned by the call indicates the reason for failure.
                     76: .SH PRESENTATION\-DESCRIPTORS
                     77: Once a connection has been established via a successful return from
                     78: \fBPConnResponse\fR (for servers) or \fBPConnRequest\fR (for clients),
                     79: a connection is referenced by a small integer
                     80: (returned in a structure passed to these calls) called a
                     81: \fIpresentation\-descriptor\fR.
                     82: The presentation\-descriptor appears as an argument to the peer routines
                     83: described below.
                     84: .PP
                     85: By default,
                     86: events associated with a presentation\-descriptor are synchronous in nature:
                     87: activity in the network won't generate an INDICATION event without program
                     88: first asking to be told of any activity.
                     89: To mark a presentation\-descriptor as asynchronous,
                     90: a call to \fBPSetIndications\fR is made with the addresses of an integer
                     91: function to handle these events:
                     92: .sp
                     93: .in +.5i
                     94: .nf
                     95: .ta \w'\fIroutine\fR  'u
                     96: \fIroutine\fR  \fIevents\fR
                     97: \fBfunc1\fR    data
                     98: \fBfunc2\fR    tokens
                     99: \fBfunc3\fR    synchronization
                    100: \fBfunc4\fR    activities
                    101: \fBfunc5\fR    reports
                    102: \fBfunc6\fR    release
                    103: \fBfunc7\fR    aborts
                    104: .re
                    105: .fi
                    106: .in -.5i
                    107: .sp
                    108: Upon a successful return from \fBPSetIndications\fR,
                    109: these functions will be called as appropriate in this fashion:
                    110: .sp
                    111: .in +.5i
                    112: .B "(*func1) (sd, px);"
                    113: .sp
                    114: .B "(*func2) (sd, pt);"
                    115: .sp
                    116: .B "(*func3) (sd, pn);"
                    117: .sp
                    118: .B "(*func4) (sd, pv);"
                    119: .sp
                    120: .B "(*func5) (sd, pp);"
                    121: .sp
                    122: .B "(*func6) (sd, pf);"
                    123: .sp
                    124: .B "(*func7) (sd, pa);"
                    125: .in -.5i
                    126: .sp
                    127: where \fBpd\fR is the presentation\-descriptor,
                    128: \fBpx\fR is a pointer to a \fBPSAPdata\fR structure,
                    129: \fBpt\fR is a pointer to a \fBPSAPtoken\fR structure,
                    130: \fBpn\fR is a pointer to a \fBPSAPsync\fR structure,
                    131: \fBpv\fR is a pointer to a \fBPSAPactivity\fR structure,
                    132: \fBpp\fR is a pointer to a \fBPSAPreport\fR structure,
                    133: \fBpf\fR is a pointer to a \fBPSAPfinish\fR structure,
                    134: and \fBpa\fR is a pointer to a \fBPSAPabort\fR structure.
                    135: Any value returned by these functions is ignored.
                    136: .PP
                    137: Note well: the \fB\-lpsap\fR library uses the \fB\-ltsap\fR library to
                    138: provide this interface.
                    139: The latter library  uses the SIGEMT signal to provide this service.
                    140: Programs loaded with \fB\-ltsap\fR that use asynchronous
                    141: presentation\-descriptors should NOT use SIGEMT for other purposes.
                    142: .PP
                    143: For synchronous multiplexing of several connections,
                    144: the routine \fBPSelectMask\fR
                    145: updates a file\-descriptor mask and counter for use with \fIselect\fR\0(2).
                    146: .SH PEER
                    147: A fatal failure (consult the \fIUser's Manual\fR)
                    148: on return from any of these routines is equivalent to a
                    149: P\-P\-ABORT.INDICATION.
                    150: .sp
                    151: .in +.5i
                    152: .nf
                    153: .ta \w'\fBPUAbortRequest\fR  'u
                    154: \fIroutine\fR  \fIaction\fR
                    155: \fBPDataRequest\fR     P\-DATA.REQUEST
                    156: \fBPExpdRequest\fR     P\-EXPEDITED\-DATA.REQUEST
                    157: \fBPReadRequest\fR     P\-READ.REQUEST (synchronous read)
                    158: \fBPGTokenRequest\fR   P\-TOKEN\-GIVE.REQUEST
                    159: \fBPPTokenRequest\fR   P\-TOKEN\-PLEASE.REQUEST
                    160: \fBPRelRequest\fR      P\-RELEASE.REQUEST
                    161: \fBPRelResponse\fR     P\-RELEASE.RESPONSE
                    162: \fBPUAabortRequest\fR  P\-U\-ABORT.REQUEST
                    163: .re
                    164: .fi
                    165: .in -.5i
                    166: .sp
                    167: Note that the \fBPReadRequest\fR routine returns data from the peer by
                    168: allocating memory.
                    169: It should be freed before the structure is re\-used.
                    170: .PP
                    171: Also note that presentation utilizes a graceful closing mechanism.
                    172: Upon receipt of a P\-RELEASE\-INDICATION event,
                    173: the peer must immediately respond with an P\-RELEASE\-RESPONSE.
                    174: Depending on the setting of the session requirements (described next),
                    175: the peer may indicate refusal in the response.
                    176: .PP
                    177: Finally,
                    178: the routine \fBPErrString\fR takes a failure code from a \fBPSAPabort\fR
                    179: structure and returns a null\-terminated diagnostic string.
                    180: Also,
                    181: the routine \fBPLocalHostName\fR returns a null\-terminated string denoting
                    182: the name of the localhost;
                    183: .SH "SESSION REQUIREMENTS"
                    184: During the connection\-establishment phase,
                    185: the presentation\-users, presentation\-providers, and session\-providers
                    186: negotiate the characteristics of the connection.
                    187: In particular,
                    188: they negotiate the \*(lqsession requirements\*(rq.
                    189: These requirements describe functional aspects of the connection,
                    190: and are always negotiated downwards.
                    191: .SH FILES
                    192: .nf
                    193: .ta \w'\*(EDisoservices  'u
                    194: \*(EDisobjects ISODE objects database
                    195: \*(EDisoservices       ISODE services database
                    196: .re
                    197: .fi
                    198: .SH "SEE ALSO"
                    199: isobjects(5), isoservices(5), tsapd(8c),
                    200: .br
                    201: \fIThe ISO Development Environment: User's Manual\fR,
                    202: .br
                    203: ISO 8822:
                    204: \fIInformation Processing Systems \-\- Open Systems Interconnection \-\-
                    205: Connection Oriented Presentation Service Definition\fR
                    206: .SH DIAGNOSTICS
                    207: All routines return the manifest constant \fBNOTOK\fR (\-1) on error.
                    208: In addition,
                    209: those routines which take a pointer to a \fBPSAPindication\fR structure
                    210: fill\-in the structure as appropriate.
                    211: .SH AUTHOR
                    212: Marshall T. Rose
                    213: .SH BUGS
                    214: Do not confuse presentation\-descriptors with file\-descriptors.
                    215: Unlike file\-descriptors which are implemented by the kernel,
                    216: presentation\-descriptors do not work across \fIfork\fRs and \fIexec\fRs.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.