/** * read * reads data into a buffer * @return number of bytes read * @param buf buffer to read into * @param off offset to start reading from * @param len number of bytes to read */ boost::uint32_t hpiutil::sqshstream::read(boost::uint8_t *buf, const boost::uint32_t off, const boost::uint32_t len) { position = bitmin(off,fullsize); if ((position >= fullsize)||!valid) return 0; boost::uint32_t reallen = bitmin(len,(fullsize-position)); for (int i = 0; i < reallen; i++) buf[i] = data[position++]; return position - off; }
/** * read * reads data into a buffer * @return the number of bytes read * @param buf buffer to read into * @param off offset in substream to start reading from * @param len size of data to read */ boost::uint32_t hpiutil::substream::read(boost::uint8_t *buf, const boost::uint32_t off, const boost::uint32_t len) { position = bitmin(off,length); if (position >= length) return 0; boost::uint32_t reallen = bitmin(len,(length-position)); for (boost::uint32_t j = 0; j < reallen; j++) buf[j] = data[position++]; return position-off; }
/** * read * reads data into a buffer * @return number of bytes read * @param buf buffer to read into */ boost::uint32_t hpiutil::sqshstream::read(boost::uint8_t *buf) { if ((position >= fullsize)||!valid) return 0; boost::uint32_t oldpos = position; boost::uint32_t len = bitmin(sizeof(buf),(fullsize-position)); for (int i = 0; i < len; i++) buf[i] = data[position++]; return position - oldpos; }
/** * read * reads data into a buffer * @return the number of bytes read * @param buf buffer to read into */ boost::uint32_t hpiutil::substream::read(boost::uint8_t *buf) { if (position >= length) return 0; boost::uint32_t oldpos = position; boost::uint32_t len = bitmin(sizeof(buf),(length-position)); for (boost::uint32_t j = 0; j < len; j++) buf[j] = data[position++]; return position - oldpos; }