Contents|Index|Previous|Next

Forwarding I/O activity

An indirectbuf is one that forwards all of its I/O requests to another streambuf.

An indirectbuf can be used to implement Common Lisp synonym-streams and two-way-streams, as with the following example.

    class synonymbuf : public indirectbuf {
       Symbol *sym;
       synonymbuf(Symbol *s) { sym = s; }
       virtual streambuf *lookup_stream(int mode) {
          return coerce_to_streambuf(lookup_value(sym)); }
    };