\contentsline {part}{\uppercase {i}\phspace {1em}Introduction}{1} \contentsline {chapter}{\numberline {1}Overview}{3} \contentsline {section}{\numberline {1.1}Fanatics Need Not Read Further}{4} \contentsline {section}{\numberline {1.2}The Name of the Game}{5} \contentsline {section}{\numberline {1.3}Operating Environments}{5} \contentsline {section}{\numberline {1.4}Organization of the Release}{7} \contentsline {section}{\numberline {1.5}A Note on this Implementation}{9} \contentsline {section}{\numberline {1.6}Changes Since the Last Release}{10} \contentsline {part}{\uppercase {ii}\phspace {1em}Application Services}{11} \contentsline {chapter}{\numberline {2}Association Control}{13} \contentsline {section}{\numberline {2.1}An Important Note}{14} \contentsline {section}{\numberline {2.2}Associations}{15} \contentsline {subsection}{\numberline {2.2.1}Association Establishment}{15} \contentsline {subsubsection}{Addresses}{15} \contentsline {subsubsection}{Address Encodings}{18} \contentsline {subsubsection}{Server Initialization}{21} \contentsline {subsubsection}{Client Initialization}{27} \contentsline {subsection}{\numberline {2.2.2}Association Release}{33} \contentsline {subsection}{\numberline {2.2.3}Association Abort}{37} \contentsline {section}{\numberline {2.3}Higher-Performance Nameservice}{37} \contentsline {section}{\numberline {2.4}Association Events}{38} \contentsline {subsection}{\numberline {2.4.1}Release Indication}{39} \contentsline {subsection}{\numberline {2.4.2}Abort Indication}{40} \contentsline {section}{\numberline {2.5}Select Facility}{41} \contentsline {section}{\numberline {2.6}Generic Server Dispatch}{41} \contentsline {section}{\numberline {2.7}Restrictions on User Data}{47} \contentsline {section}{\numberline {2.8}Error Conventions}{47} \contentsline {section}{\numberline {2.9}Compiling and Loading}{48} \contentsline {section}{\numberline {2.10}An Example}{48} \contentsline {section}{\numberline {2.11}For Further Reading}{53} \contentsline {chapter}{\numberline {3}Remote Operations}{54} \contentsline {section}{\numberline {3.1}Notice}{55} \contentsline {section}{\numberline {3.2}Service Disciplines and Associations}{55} \contentsline {section}{\numberline {3.3}Remote Operations}{55} \contentsline {subsection}{\numberline {3.3.1}Selecting an Underlying Service}{60} \contentsline {subsection}{\numberline {3.3.2}Invoking Operations}{61} \contentsline {subsection}{\numberline {3.3.3}Replying to Requests}{63} \contentsline {subsection}{\numberline {3.3.4}Reading Replies}{64} \contentsline {subsubsection}{Invocation Indication}{66} \contentsline {subsubsection}{Result Indication}{67} \contentsline {subsubsection}{Error Indication}{67} \contentsline {subsubsection}{User-Reject Indication}{68} \contentsline {subsubsection}{End Indication}{69} \contentsline {subsubsection}{Finish Indication}{69} \contentsline {subsection}{\numberline {3.3.5}Rejecting Requests and Replies}{69} \contentsline {subsection}{\numberline {3.3.6}Asynchronous Event Handling}{70} \contentsline {subsection}{\numberline {3.3.7}Synchronous Event Multiplexing}{72} \contentsline {section}{\numberline {3.4}Error Conventions}{72} \contentsline {section}{\numberline {3.5}Compiling and Loading}{73} \contentsline {section}{\numberline {3.6}Two Examples}{73} \contentsline {subsection}{\numberline {3.6.1}The Generic Server}{73} \contentsline {subsection}{\numberline {3.6.2}The Generic Client}{80} \contentsline {section}{\numberline {3.7}For Further Reading}{83} \contentsline {chapter}{\numberline {4}Reliable Transfer}{85} \contentsline {section}{\numberline {4.1}Associations}{86} \contentsline {subsection}{\numberline {4.1.1}Association Establishment}{86} \contentsline {subsubsection}{Addresses}{86} \contentsline {subsubsection}{Server Initialization}{86} \contentsline {subsubsection}{Client Initialization}{89} \contentsline {subsection}{\numberline {4.1.2}Association Release}{91} \contentsline {subsection}{\numberline {4.1.3}Association Abort}{93} \contentsline {section}{\numberline {4.2}Reliable Transfer}{94} \contentsline {subsection}{\numberline {4.2.1}Sending Data}{97} \contentsline {subsection}{\numberline {4.2.2}Receiving Data}{97} \contentsline {subsubsection}{Transfer Indication}{99} \contentsline {subsubsection}{Turn Indication}{99} \contentsline {subsubsection}{Close Indication}{100} \contentsline {subsubsection}{Finish Indication}{100} \contentsline {subsection}{\numberline {4.2.3}Managing the Turn}{100} \contentsline {subsection}{\numberline {4.2.4}Asynchronous Event Handling}{101} \contentsline {subsection}{\numberline {4.2.5}Synchronous Event Multiplexing}{102} \contentsline {subsection}{\numberline {4.2.6}Reliable Transfer (revisited)}{103} \contentsline {section}{\numberline {4.3}Error Conventions}{107} \contentsline {section}{\numberline {4.4}Compiling and Loading}{107} \contentsline {section}{\numberline {4.5}An Example}{108} \contentsline {section}{\numberline {4.6}For Further Reading}{110} \contentsline {part}{\uppercase {iii}\phspace {1em}Data Services}{111} \contentsline {chapter}{\numberline {5}Encoding of Data-Structures}{113} \contentsline {section}{\numberline {5.1}Presentation Streams}{113} \contentsline {subsection}{\numberline {5.1.1}Creating a Stream}{114} \contentsline {subsection}{\numberline {5.1.2}Stream I/O}{117} \contentsline {subsection}{\numberline {5.1.3}Deleting a Stream}{118} \contentsline {subsection}{\numberline {5.1.4}Implementing Other Abstractions}{118} \contentsline {section}{\numberline {5.2}Presentation Stream I/O}{120} \contentsline {subsection}{\numberline {5.2.1}Debugging}{121} \contentsline {section}{\numberline {5.3}Presentation Elements}{121} \contentsline {subsection}{\numberline {5.3.1}Creating an Element}{123} \contentsline {subsection}{\numberline {5.3.2}Deleting an Element}{125} \contentsline {subsection}{\numberline {5.3.3}Primitive Manipulation of Elements}{125} \contentsline {section}{\numberline {5.4}Presentation Element Transformations}{126} \contentsline {subsection}{\numberline {5.4.1}Boolean}{126} \contentsline {subsection}{\numberline {5.4.2}Integer}{127} \contentsline {subsection}{\numberline {5.4.3}Octetstring}{128} \contentsline {subsection}{\numberline {5.4.4}Octetstrings revisited}{129} \contentsline {subsection}{\numberline {5.4.5}Bitvector}{131} \contentsline {subsection}{\numberline {5.4.6}Object Identifier}{133} \contentsline {subsection}{\numberline {5.4.7}Timestring}{135} \contentsline {subsection}{\numberline {5.4.8}Sets and Sequences}{138} \contentsline {section}{\numberline {5.5}Inline CONStructors}{142} \contentsline {section}{\numberline {5.6}Compiling and Loading}{143} \contentsline {section}{\numberline {5.7}An Example}{143} \contentsline {section}{\numberline {5.8}For Further Reading}{145} \contentsline {part}{\uppercase {iv}\phspace {1em}Databases}{147} \contentsline {chapter}{\numberline {6}The ISO Aliases Database}{149} \contentsline {section}{\numberline {6.1}Accessing the Database}{149} \contentsline {section}{\numberline {6.2}User-Specific Aliases}{150} \contentsline {chapter}{\numberline {7}The ISODE Entities Database}{151} \contentsline {section}{\numberline {7.1}Accessing the Database}{152} \contentsline {chapter}{\numberline {8}The ISO Macros Database}{154} \contentsline {section}{\numberline {8.1}User-Specific Macros}{154} \contentsline {chapter}{\numberline {9}The ISODE Objects Database}{155} \contentsline {section}{\numberline {9.1}Accessing the Database}{155} \contentsline {chapter}{\numberline {10}Defining New Services}{157} \contentsline {section}{\numberline {10.1}Standard Services}{158} \contentsline {section}{\numberline {10.2}GOSIP Services}{159} \contentsline {section}{\numberline {10.3}Static Servers}{160} \contentsline {part}{\uppercase {v}\phspace {1em}Appendices}{161} \contentsline {chapter}{\numberline {A}Old-Style Associations}{163} \contentsline {section}{\numberline {A.1}Remote Operations}{163} \contentsline {subsection}{\numberline {A.1.1}Addresses}{163} \contentsline {subsection}{\numberline {A.1.2}Association Establishment}{164} \contentsline {subsubsection}{Server Initialization}{164} \contentsline {subsubsection}{Client Initialization}{168} \contentsline {subsection}{\numberline {A.1.3}Association Release}{169} \contentsline {subsection}{\numberline {A.1.4}An Example}{170} \contentsline {section}{\numberline {A.2}Reliable Transfer}{171} \contentsline {subsection}{\numberline {A.2.1}Addresses}{171} \contentsline {subsection}{\numberline {A.2.2}Association Establishment}{173} \contentsline {subsubsection}{Server Initialization}{173} \contentsline {subsubsection}{Client Initialization}{177} \contentsline {subsection}{\numberline {A.2.3}Association Release}{179} \contentsline {subsection}{\numberline {A.2.4}An Example}{180}