// // Copyright 2006 Jim Bublitz // Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson // may also apply // Generated by preSip // module kdecore version KDE 3.5.3 // This software 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; either version 2 of // the License, or (at your option) any later version. // // This software 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 this library; see the file COPYING. // If not, write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class KBufferedIO : KAsyncIO { %TypeHeaderCode #include %End protected: KBufferedIO (); public: enum closeModes { availRead, dirtyWrite, involuntary, delayed, closedNow }; virtual void closeNow () = 0; virtual bool setBufferSize (int, int = -2); virtual int bytesAvailable () const; virtual int waitForMore (int) = 0; virtual int bytesToWrite () const; virtual bool canReadLine () const; virtual int peekBlock (char*, uint) = 0; virtual int unreadBlock (const char*, uint); signals: void bytesWritten (int); void closed (int); protected: virtual uint consumeReadBuffer (uint, char*, bool = 1); virtual void consumeWriteBuffer (uint); virtual uint feedReadBuffer (uint, const char*, bool = 0); virtual uint feedWriteBuffer (uint, const char*); virtual uint readBufferSize () const; virtual uint writeBufferSize () const; protected: //igx virtual void virtual_hook (int, void*); }; // class KBufferedIO