/**
 * @file
 * $Id$
 * $Revision$
 * $Author$
 * $Date$
 *
 * This file is part of The iWear Framework.
 * In particular this file is part of the Framework Core Library
 *
 * The iWear Framework is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by the
 * Free Software Foundation as in version 2 of the License.

 * 
 * The iWear Framework is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * The iWear Framework; if not, write to the Free Software Foundation, Inc., 59
 * Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef __IWEAR_DOUT_H
#define __IWEAR_DOUT_H


namespace iwear
{
    /**
     * dout will be a function, a set of function or an object with several
     * overloaded operator() or something similar, that will allow you to write to multiple streams.
     * I am not entirely sure about its design yet, but doing something like
     *
     * dout(cerr,cout) << "Foo" << 0.1 << bar << endl; 
     *
     * shall be possible. Therefore we need to return some ostream& object it
     * seems. Most likely we won't be threadsafe too.
     */

    ostream* o[10];

    int am;
    ostream& operator()( ostream& o0, ostream& o1)
    {
	o[0] = &o0;
	o[1] = &o1;
	am = 2;

	return *this;
    }

    // here create some of the needed readbuf functions, that will delegate their stuff to the saved ostreams
}

#endif

