Annotation of 43BSDReno/contrib/isode-beta/doc/manual/objects.tex, revision 1.1

1.1     ! root        1: % run this through LaTeX with the appropriate wrapper
        !             2: 
        !             3: \chapter      {The ISODE Objects Database}\label{isobjects}
        !             4: The database \file{isobjects} in the ISODE \verb"ETCDIR" directory
        !             5: (usually \file{/usr/etc/})
        !             6: contains a simple mapping between
        !             7: object descriptors and object identifiers.
        !             8: 
        !             9: The database itself is an ordinary ASCII text file containing information
        !            10: regarding the known objects on the host.
        !            11: Each line contains
        !            12: \begin{itemize}
        !            13: \item  the descriptor of the object, a simple string; and,
        !            14: 
        !            15: \item  the corresponding object identifier.
        !            16: \end{itemize}
        !            17: Blanks and/or tab characters are used to separate items.
        !            18: However, double-quotes may be used to prevent separation for items containing
        !            19: embedded whitspace.
        !            20: The sharp character (`\verb"#"') at the beginning of a line indicates a
        !            21: commentary line.
        !            22: 
        !            23: \section      {Accessing the Database}\label{isobject}
        !            24: The \man libpsap(3) library contains the routines used to access the
        !            25: database.
        !            26: These routines ultimately manipulate an \verb"isobject" structure,
        !            27: which is the internal form.
        !            28: \begin{quote}\index{isobject}\small\begin{verbatim}
        !            29: struct isobject {
        !            30:     char          *io_descriptor;
        !            31: 
        !            32:     OIDentifier    io_identity;
        !            33: };
        !            34: \end{verbatim}\end{quote}
        !            35: The elements of this structure are:
        !            36: \begin{describe}
        !            37: \item[\verb"io\_descriptor":] the object descriptor; and,
        !            38: 
        !            39: \item[\verb"io\_identity":] the object identifier.
        !            40: \end{describe}
        !            41: 
        !            42: The routine \verb"getisobject" reads the next entry in the database,
        !            43: opening the database if necessary.
        !            44: \begin{quote}\index{getisobject}\small\begin{verbatim}
        !            45: struct isobject *getisobject ()
        !            46: \end{verbatim}\end{quote}
        !            47: It returns the manifest constant \verb"NULL" on error or end-of-file.
        !            48: 
        !            49: The routine \verb"setisobject" opens and rewinds the database.
        !            50: \begin{quote}\index{setisobject}\small\begin{verbatim}
        !            51: int     setisobject (f)
        !            52: int     f;
        !            53: \end{verbatim}\end{quote}
        !            54: The parameter to this procedure is:
        !            55: \begin{describe}
        !            56: \item[\verb"f":] the ``stayopen'' indicator,
        !            57: if non-zero, then the database will remain open over subsequent calls to the
        !            58: library.
        !            59: \end{describe}
        !            60: The routine \verb"endisobject" closes the database.
        !            61: \begin{quote}\index{endisobject}\small\begin{verbatim}
        !            62: int     endisobject ()
        !            63: \end{verbatim}\end{quote}
        !            64: Both of these routines return non-zero on success and zero otherwise.
        !            65: 
        !            66: There are two routines used to fetch a particular entry in the database.
        !            67: The routine \verb"getisobjectbyname" maps object descriptors into
        !            68: the internal form.
        !            69: \begin{quote}\index{getisobjectbyname}\small\begin{verbatim}
        !            70: struct isobject *getisobjectbyname (descriptor)
        !            71: char   *descriptor;
        !            72: \end{verbatim}\end{quote}
        !            73: The parameter to this procedure is:
        !            74: \begin{describe}
        !            75: \item[\verb"descriptor":] the descriptor of the object.
        !            76: \end{describe}
        !            77: and returns the \verb"isobject" structure describing that object.
        !            78: On failure, the manifest constant \verb"NULL" is returned instead.
        !            79: 
        !            80: The routine \verb"getisobjectbyoid" performs the inverse function.
        !            81: \begin{quote}\index{getisobjectbyoid}\small\begin{verbatim}
        !            82: struct isobject *getisobjectbyoid (oid)
        !            83: OID     oid;
        !            84: \end{verbatim}\end{quote}
        !            85: The parameter to this procedure is:
        !            86: \begin{describe}
        !            87: \item[\verb"oid":] the identifier of the object.
        !            88: \end{describe}
        !            89: On a successful return,
        !            90: an \verb"isobject" structure describing the object is returned.

unix.superglobalmegacorp.com

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