Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

CascadeStream.h

Go to the documentation of this file.
00001 //
00002 // CascadeStream.h - header file for class CascadeStream
00003 //
00004 // Copyright (c) 2002, Roku, LLC.  All rights reserved.
00005 //
00008 
00009 #ifndef _ROKU_INCLUDE_CASCADE_UTIL_CASCADESTREAM_H
00010 #define _ROKU_INCLUDE_CASCADE_UTIL_CASCADESTREAM_H
00011 
00012 #include <cascade/util/CascadeString.h>
00013 
00015 // CascadeStream #defines
00016 #define CASCADESTREAM_METADATA_NAME_URL         "url"
00017 #define CASCADESTREAM_METADATA_NAME_TITLE       "title"
00018 #define CASCADESTREAM_METADATA_NAME_ARTIST      "artist"
00019 #define CASCADESTREAM_METADATA_NAME_ALBUM       "album"
00020 #define CASCADESTREAM_METADATA_NAME_YEAR        "year"
00021 
00032 class CascadeStream : public CascadeObject
00033 {
00034 public:
00035         CascadeStream();
00039         virtual ~CascadeStream();
00043 public:
00044     virtual  u64 GetSize() = 0;
00052     virtual  u64 GetPosition() = 0;
00058     virtual bool SeekToPosition(u64 nPosition) = 0;
00064     virtual  u32 ReadBytes(u32 nBytes, void * pBuff) = 0;
00070     virtual bool GetLine(class CascadeString & lineToSet);
00084     virtual void AddMetadata(const CascadeString & name, const CascadeString & value);
00085     virtual void RemoveMetadata(const CascadeString & name);
00086     virtual void RemoveAllMetadata();
00087     virtual bool LookupMetadata(const CascadeString & name, CascadeString & valueToSet) const;
00088     typedef bool (MetadataEnumProc)(const CascadeString & name, const CascadeString & value, void * pClientData);
00089     virtual bool EnumerateMetadata(MetadataEnumProc * pEnumProc, void * pClientData) const;
00090     inline  void SetURL(const CascadeString & url) { AddMetadata(CascadeString(CASCADESTREAM_METADATA_NAME_URL), url); }
00091     inline  bool GetURL(CascadeString & urlToSet) const { return LookupMetadata(CascadeString(CASCADESTREAM_METADATA_NAME_URL), urlToSet); }
00092     inline  void ClearURL() { RemoveMetadata(CascadeString(CASCADESTREAM_METADATA_NAME_URL)); }
00093 private:
00094     class Stream;
00095     Stream * m_pStream;
00096 };
00097 
00098 #endif // #ifndef _ROKU_INCLUDE_CASCADE_UTIL_CASCADESTREAM_H
00099 
00101 //  LOG
00103 //  18-Dec-03   dwoodward       created
00104 //  19-Feb-03   dwoodward       added GetLine()
00105 //  13-May-05   dwoodward   added metadata functions
00106 //  01-Jun-05   dsletten    ClearURL impl was returning a value

Generated on Sun Jul 24 14:27:17 2005 for Cascade Library by  doxygen 1.4.1