24 #include "streamclone.h"
30 StreamClone::StreamClone(Stream *clone, off_t offset)
31 : Stream(clone->get_path().c_str()),
32 m_cloned(clone), m_offset(offset)
37 StreamClone::~StreamClone()
44 if (m_cloned == NULL) {
45 set_error(OR_ERROR_CLOSED_STREAM);
46 return OR_ERROR_CLOSED_STREAM;
48 m_cloned->
seek(m_offset, SEEK_SET);
64 if (m_cloned == NULL) {
65 set_error(OR_ERROR_CLOSED_STREAM);
68 if (whence == SEEK_SET) {
71 return m_cloned->
seek(offset, whence);
77 if (m_cloned == NULL) {
78 set_error(OR_ERROR_CLOSED_STREAM);
81 return m_cloned->
read(buf, count);
85 off_t StreamClone::filesize()
87 if (m_cloned == NULL) {
88 set_error(OR_ERROR_CLOSED_STREAM);
91 return m_cloned->filesize();