Annotation of 43BSDReno/contrib/isode-beta/psap2/libpsap2.3n, revision 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.