OSRTInputStreamIF.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2003-2010 Objective Systems, Inc.
00003  *
00004  * This software is furnished under a license and may be used and copied
00005  * only in accordance with the terms of such license and with the
00006  * inclusion of the above copyright notice. This software or any other
00007  * copies thereof may not be provided or otherwise made available to any
00008  * other person. No title to and ownership of the software is hereby
00009  * transferred.
00010  *
00011  * The information in this software is subject to change without notice
00012  * and should not be construed as a commitment by Objective Systems, Inc.
00013  *
00014  * PROPRIETARY NOTICE
00015  *
00016  * This software is an unpublished work subject to a confidentiality agreement
00017  * and is protected by copyright and trade secret law.  Unauthorized copying,
00018  * redistribution or other use of this work is prohibited.
00019  *
00020  * The above notice of copyright on this source code product does not indicate
00021  * any actual or intended publication of such source code.
00022  *
00023  *****************************************************************************/
00028 #ifndef _OSRTINPUTSTREAMIF_H_
00029 #define _OSRTINPUTSTREAMIF_H_
00030 
00031 #include "rtxsrc/OSRTStreamIF.h"
00032 
00043 class EXTRTCLASS OSRTInputStreamIF : public OSRTStreamIF {
00044  public:
00048    virtual EXTRTMETHOD ~OSRTInputStreamIF ();
00049 
00055    virtual size_t currentPos () = 0;
00056 
00066    virtual OSBOOL markSupported () = 0;
00067 
00083    virtual int mark (size_t readAheadLimit) = 0;
00084 
00097    virtual long read (OSOCTET* pDestBuf, size_t maxToRead) = 0;
00098 
00111    virtual long readBlocking (OSOCTET* pDestBuf, size_t toReadBytes) = 0;
00112 
00122    virtual int reset () = 0;
00123 
00134    virtual int skip (size_t n) = 0;
00135 
00136 } ;
00137 
00138 class EXTRTCLASS OSRTInputStreamPtr {
00139    OSRTInputStreamIF* mPtr;
00140  public:
00141    inline OSRTInputStreamPtr (OSRTInputStreamIF* ptr) : mPtr (ptr) {}
00142    inline ~OSRTInputStreamPtr () { delete mPtr; }
00143 
00144    inline operator OSRTInputStreamIF* ()   { return mPtr; }
00145    inline OSRTInputStreamIF* operator-> () { return mPtr; }
00146 } ;
00147 
00150 #endif /* _OSRTINPUTSTREAMIF_H_ */