#ifndef __STG_STGLIBS_BLOCK_IO_H__ #define __STG_STGLIBS_BLOCK_IO_H__ #include #include namespace STG { typedef std::vector IOVec; class BlockReader { public: BlockReader(const IOVec& ioVec); bool read(int socket); bool done() const { return m_remainder == 0; } size_t remainder() const { return m_remainder; } private: IOVec m_dest; size_t m_remainder; }; class BlockWriter { public: BlockWriter(const IOVec& ioVec); bool write(int socket); bool done() const { return m_remainder == 0; } size_t remainder() const { return m_remainder; } private: IOVec m_source; size_t m_remainder; }; } // namespace STG #endif