|
|
1.1 ! root 1: % run this through LaTeX with the appropriate wrapper ! 2: ! 3: \chapter {The ISO Documents Database}\label{isodocuments} ! 4: The database \file{isodocuments} in the ISODE \verb"ETCDIR" directory ! 5: (usually the directory \file{/usr/etc/}) ! 6: contains a simple mapping between ! 7: textual descriptions of FTAM document types and the various object ! 8: identifiers which compose each document type. ! 9: ! 10: The database itself is an ordinary ASCII text file containg information ! 11: regarding the known FTAM document types on the host. ! 12: Each line contains ! 13: \begin{itemize} ! 14: \item the entry number of the document type, a simple string; ! 15: ! 16: \item the document type, an object identifier; ! 17: ! 18: \item the constraint set, an object identifier; ! 19: ! 20: \item the abstract syntax, an object identifier; ! 21: and, ! 22: ! 23: \item the transfer syntax, an object identifier ! 24: \end{itemize} ! 25: Blanks and/or tab characters are used to seperate items. ! 26: However, double-quotes may be used to prevent separation for items containing ! 27: embedded whitspace. ! 28: The sharp character (`\verb"#"') at the beginning of a line indicates a ! 29: commentary line. ! 30: ! 31: \section {Accessing the Database} ! 32: The \man libftam(3n) library contains the routines used to access the database. ! 33: These routines ultimately manipulate an \verb"isodocment" structure, ! 34: which is the internal form. ! 35: \begin{quote}\index{isodocument}\small\begin{verbatim} ! 36: struct isodocument { ! 37: char *id_entry; ! 38: ! 39: OID id_type; ! 40: OID id_constraint; ! 41: OID id_abstract; ! 42: OID id_transfer; ! 43: }; ! 44: \end{verbatim}\end{quote} ! 45: The elements of this structure are: ! 46: \begin{describe} ! 47: \item[\verb"id\_entry":] the entry number of the document type; ! 48: ! 49: \item[\verb"id\_type":] the document type; ! 50: ! 51: \item[\verb"id\_constraint":] the constraint set; ! 52: ! 53: \item[\verb"id\_abstract":] the abstract syntax; ! 54: and, ! 55: ! 56: \item[\verb"id\_transfer":] the transfer syntax. ! 57: \end{describe} ! 58: ! 59: The routine \verb"getisodocument" reads the next entry in the database, ! 60: opening the database if necessary ! 61: \begin{quote}\index{getisodocument}\small\begin{verbatim} ! 62: struct isodocument *getisodocument () ! 63: \end{verbatim}\end{quote} ! 64: It returns the manifest constant \verb"NULL" on error or end-of-file. ! 65: ! 66: The routine \verb"setisodocument" opens and rewinds the database. ! 67: \begin{quote}\index{setisodocument}\small\begin{verbatim} ! 68: int setisodocument (f) ! 69: int f; ! 70: \end{verbatim}\end{quote} ! 71: The parameter to this procedure is: ! 72: \begin{describe} ! 73: \item[\verb"f":] the ``stayopen'' indicator, ! 74: if non-zero, then the database will remain open over subsequent calls to the ! 75: library. ! 76: \end{describe} ! 77: The routine \verb"endisodocument" closes the database. ! 78: \begin{quote}\index{endisodocument}\small\begin{verbatim} ! 79: int endisodocument () ! 80: \end{verbatim}\end{quote} ! 81: Both of these routines return non-zero on success and zero otherwise. ! 82: ! 83: There are two routines used to fetch a particular entry in the database. ! 84: The routine \verb"getisodocumentbyentry" maps textual descriptions into ! 85: the internal form. ! 86: \begin{quote}\index{getisodocumentbyentry}\small\begin{verbatim} ! 87: struct isodocument *getisodocumentbyentry (entry) ! 88: char *entry; ! 89: \end{verbatim}\end{quote} ! 90: The parameter to this procedure is: ! 91: \begin{describe} ! 92: \item[\verb"entry":] the descriptor of the object. ! 93: \end{describe} ! 94: and returns the \verb"isodocument" structure describing that document. ! 95: On failure, the manifest constant \verb"NULL" is returned instead. ! 96: ! 97: The routine \verb"getisodocumentbytype" performs the inverse function. ! 98: \begin{quote}\index{getisodocumentbytype}\small\begin{verbatim} ! 99: struct isodocument *getisodocumentbytype (tpye) ! 100: OID type; ! 101: \end{verbatim}\end{quote} ! 102: The parameter to this procedure is: ! 103: \begin{describe} ! 104: \item[\verb"type":] the identifier of the document. ! 105: \end{describe} ! 106: On a successful return, ! 107: an \verb"isodocument" structure describing the document is returned.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.