This book's samples relate a single stream to the whole plug-in instance object. A multiple stream plug-in should use a separate stream object to manage each stream. Some of the API code examples in Chapter 10 show this technique, but sample code in Chapters 17 through 23 does not. After a plug-in is loaded, for all intents and purposes it is part of the Navigator client. Being this tightly coupled allows a very high-speed bond to the Navigator client and, in turn, the Web server.
Data flows between the plug-in and Navigator in either sequential or seekable streams.
This technique puts the onus on a plug-in to continuously call Navigator for data buffers and is not considered a true continuously flowing stream. Your plug-in should only use seekable streams when the random access benefits outweigh the performance penalty. Seekable streams also have many other usage problems that you'll find out about in Chapter 10 . When Navigator creates a stream for your plug-in, it is in sequential mode. In most cases, a sequential type stream is created for each plug-in instance.