DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T e

⟦ccd595ab9⟧ TextFile

    Length: 5978 (0x175a)
    Types: TextFile
    Names: »entities.tex«

Derivation

└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape
    └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« 
        └─⟦d3ac74d73⟧ 
            └─⟦this⟧ »isode-5.0/doc/manual/entities.tex« 

TextFile

% 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.