summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/Buffer.h3
-rw-r--r--lib/Buffer.cc9
2 files changed, 9 insertions, 3 deletions
diff --git a/include/Buffer.h b/include/Buffer.h
index 73225bc..47c5c5a 100644
--- a/include/Buffer.h
+++ b/include/Buffer.h
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: Buffer.h,v 1.22 2007-06-23 15:36:02 pixel Exp $ */
+/* $Id: Buffer.h,v 1.23 2007-09-17 08:33:25 pixel Exp $ */
#ifndef __BUFFER_H__
#define __BUFFER_H__
@@ -43,6 +43,7 @@ class Buffer : public Handle {
virtual Buffer operator=(const Buffer &);
virtual bool CanWatch() const;
virtual ssize_t GetSize() const;
+ virtual ssize_t GetRemaining() const;
virtual bool CanSeek() const;
virtual off_t seek(off_t, int = SEEK_SET) throw (GeneralException);
virtual off_t tell() const;
diff --git a/lib/Buffer.cc b/lib/Buffer.cc
index 575503c..7def194 100644
--- a/lib/Buffer.cc
+++ b/lib/Buffer.cc
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: Buffer.cc,v 1.28 2007-06-23 15:36:02 pixel Exp $ */
+/* $Id: Buffer.cc,v 1.29 2007-09-17 08:33:25 pixel Exp $ */
#include <string.h>
#ifdef HAVE_CONFIG_H
@@ -66,7 +66,8 @@ ssize_t Buffer::read(void *buf, size_t count) throw (GeneralException) {
return 0;
}
- memcpy(buf, buffer + ptr, count);
+ if (buf)
+ memcpy(buf, buffer + ptr, count);
ptr += count;
if (!seekable) {
@@ -123,6 +124,10 @@ ssize_t Buffer::GetSize() const {
return realsiz;
}
+ssize_t Buffer::GetRemaining() const {
+ return realsiz - ptr;
+}
+
Byte Buffer::operator[](size_t p) const {
if (p >= realsiz) {
return 0;