00001 // /// // Mx clientSDK 00002 // ///// //// Mx Crossplatform Client Library 00003 // /// XXX XXX /// 00004 // /// XXX XXX /// $RCSfile: mxcpcStreamDecoder.h,v $ 00005 // /// XXX /// $Revision: 1.4 $ 00006 // /// XXX XXX /// $Date: 2005/12/12 19:29:16 $ 00007 // //// XXX XXX //// $Author: cvs-kai $ 00008 // //// //// 00009 // //// M O B O T I X //////////////////////////////////////////////// 00010 // //// Security Vision Systems ////////////////////////////////////////////// 00011 // // 00012 // Copyright (C) 2005 - 2006, MOBOTIX AG, Germany // 00013 // This software is made available under the BSD licence. Please refer // 00014 // to the file LICENCE.TXT contained in this distribution for details. // 00015 // // 00016 // ///////////////////////////////////////////////////////////////////// 00017 00018 00019 00020 #ifndef __MXCPC_STREAMDECODER_H__ 00021 #define __MXCPC_STREAMDECODER_H__ 00022 00023 00024 00025 class mxcpcStreamSource; 00026 00027 00028 00029 //! Interface to all stream decoders. 00030 /*! 00031 * \ingroup mxcpc_core 00032 */ 00033 class mxcpcStreamDecoder { 00034 00035 protected: 00036 mxcpcStreamSource *StreamSource; 00037 00038 public: 00039 //! The stream decoder assumes ownership over the stream source object. 00040 /*! 00041 * Thus, deleting the decoder results in disconnecting from the stream 00042 * source. 00043 */ 00044 mxcpcStreamDecoder(mxcpcStreamSource *source); 00045 virtual ~mxcpcStreamDecoder(); 00046 00047 public: 00048 //! Decodes at most <tt>num</tt> bytes of raw stream data, and returns 00049 //! the number of bytes actually decoded. 00050 virtual int decode(int num) = 0; 00051 //! Returns whether or not the decoder's stream source is still operational 00052 //! ("up") 00053 bool sourceStillUp(void); 00054 }; 00055 00056 00057 00058 #endif // __MXCPC_STREAMDECODER_H__