|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T e
Length: 5978 (0x175a) Types: TextFile Names: »entities.tex«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/doc/manual/entities.tex«
% run this through LaTeX with the appropriate wrapper \f \chapter {The ISODE Entities Database}\label{isoentities} The database \file{/usr/etc/isoentities} contains a simple mapping between appli\-cat\-ion-entity information and presentation addresses. This database is used by the stub-directory service. The database itself is an ordinary ASCII text file containing information regarding the known ap\-pli\-ca\-tion-entities on the network. There are two formats for an entry. The old format is described first. Note that this format will not be supported in the next release. Therefore it is imperative that the new format be used in order to minimize future problems. \f \section {Old Format} Each entry contains \begin{itemize} \item the object descriptor of the application-entity information, realized as a designator-qualifier (host/service) pair (the distinguished designator \verb"default" is used for a template entry); \item the object identifier of the application-entity information expressed in dot-notation (if no application-entity information is desired, the string ``NULL'' should be used instead); \item the presentation, session, and transport selectors of the associated presentation address, interpreted as a: \begin{describe} \item[number,] if the selector starts with a hash-mark (`\verb"#"'). More precisely, this denotes the so-called GOSIP method for denoting selectors, which uses a two octet, network byte-order representation. \item[ascii string,] if the selector appears in double-quotes (`\verb|"|'). The usual escape mechanisms can be used to introduce non-printable characters. \item[octet string,] if all else fails. The standard ``explosion'' encoding is used, each octet in the string is represented by a two-digit hexadecimal quantity. \end{describe} and, \item one or more network addresses of the associated presentation address (following lines, until the first blank line or end-of-file, define additional network addresses). \end{itemize} Blank lines are used to separate entries. Blanks and/or tab characters are used to seperate items. However double-quotes may be used to prevent separation for items containing embedded whitspace. This is useful for defining the selectors. The sharp character (`\verb"#"') at the beginning of a line indicates a commentary line. \f \section {New Format} Each entry contains \begin{itemize} \item the object descriptor of the application-entity information, realized as a designator-qualifier (host/service) pair (the distinguished designator \verb"default" is used for a template entry); \item the object identifier of the application-entity information expressed in dot-notation (if no application-entity information is desired, the string ``NULL'' should be used instead); and, \item the presentation address expressed in the string format described in Section~\ref{addr:encodings} on page~\pageref{addr:encodings} in \volone/. Note that since double-quotes are often used in the new string format, it is {\bf very\/} important to quote them correctly in the \man isoentities(5) file. Usually preceeding the first character of the address with backslash (``\verb"\"'') is adequate. \end{itemize} Blank lines are used to separate entries. (In the next release, blank lines won't be necessary but should be retained for readability. Blanks and/or tab characters are used to seperate items. However double-quotes may be used to prevent separation for items containing embedded whitspace. This is useful for defining the presetnation address. The sharp character (`\verb"#"') at the beginning of a line indicates a commentary line. \f \section {Accessing the Database}\label{isoentity} The \man libacsap(3n) library contains the routines used to access the database. The high-level routines, \verb"str2aei", which forms an object descriptor and returns application-entity information, and \verb"aei2addr", which maps the ap\-pli\-ca\-tion-entity information into a presentation address have already been discussed in Section~\ref{acs:aei}. Similarly, the ``old-style'' routines, \verb"is2paddr", \verb"is2saddr", \verb"is2taddr", which maps a host and service directly into a prsentation, session, or transport address (respectively) are discussed in Sections~\ref{psap:addresses}, \ref{ssap:addresses}, and~\ref{tsap:addresses} of \voltwo/ (respectively). Hence, for the remainder of this chapter, we need only consider the internal form used by the library in querying the database. The \verb"isoentity" structure is the internal form. \begin{quote}\index{isoentity}\small\begin{verbatim} struct isoentity { OIDentifier ie_identifier; char *ie_descriptor; struct PSAPaddr ie_addr; }; \end{verbatim}\end{quote} The elements of this structure are: \begin{describe} \item[\verb"ie\_identifier":] an object identifier used to form application-entity information; \item[\verb"ie\_identifier":] the corresponding object descriptor; and, \item[\verb"ie\_addr":] the presentation address. \end{describe} The routine \verb"getisoentity" reads the next entry in the database, opening the database if necessary. \begin{quote}\index{getisoentity}\small\begin{verbatim} struct isoentity *getisoentity () \end{verbatim}\end{quote} It returns the manifest constant \verb"NULL" on error or end-of-file. The routine \verb"setisoentity" opens and rewinds the database. \begin{quote}\index{setisoentity}\small\begin{verbatim} int setisoentity (f) int f; \end{verbatim}\end{quote} The parameter to this procedure is: \begin{describe} \item[\verb"f":] the ``stayopen'' indicator, if non-zero, then the database will remain open over subsequent calls to the library. \end{describe} The routine \verb"endisoentity" closes the database. \begin{quote}\index{endisoentity}\small\begin{verbatim} int endisoentity () \end{verbatim}\end{quote} Both of these routines return non-zero on success and zero otherwise.