RtspMsgParser.hxx
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. #ifndef RtspMsgParser_hxx
  2. #define RtspMsgParser_hxx
  3. /* ====================================================================
  4.  * The Vovida Software License, Version 1.0 
  5.  * 
  6.  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved.
  7.  * 
  8.  * Redistribution and use in source and binary forms, with or without
  9.  * modification, are permitted provided that the following conditions
  10.  * are met:
  11.  * 
  12.  * 1. Redistributions of source code must retain the above copyright
  13.  *    notice, this list of conditions and the following disclaimer.
  14.  * 
  15.  * 2. Redistributions in binary form must reproduce the above copyright
  16.  *    notice, this list of conditions and the following disclaimer in
  17.  *    the documentation and/or other materials provided with the
  18.  *    distribution.
  19.  * 
  20.  * 3. The names "VOCAL", "Vovida Open Communication Application Library",
  21.  *    and "Vovida Open Communication Application Library (VOCAL)" must
  22.  *    not be used to endorse or promote products derived from this
  23.  *    software without prior written permission. For written
  24.  *    permission, please contact vocal@vovida.org.
  25.  *
  26.  * 4. Products derived from this software may not be called "VOCAL", nor
  27.  *    may "VOCAL" appear in their name, without prior written
  28.  *    permission of Vovida Networks, Inc.
  29.  * 
  30.  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
  31.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  32.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
  33.  * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA
  34.  * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
  35.  * IN EXCESS OF 281421,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
  36.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  37.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  38.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  39.  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  40.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  41.  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  42.  * DAMAGE.
  43.  * 
  44.  * ====================================================================
  45.  * 
  46.  * This software consists of voluntary contributions made by Vovida
  47.  * Networks, Inc. and many individuals on behalf of Vovida Networks,
  48.  * Inc.  For more information on Vovida Networks, Inc., please see
  49.  * <http://www.vovida.org/>.
  50.  *
  51.  */
  52. static const char* const RtspMsgParser_hxx_Version =
  53.     "$Id: RtspMsgParser.hxx,v 1.6 2001/05/15 20:26:12 bko Exp $";
  54. #include "RtspBadDataException.hxx"
  55. #include "Sptr.hxx"
  56. #include "RtspMsg.hxx"
  57. /** */
  58. class RtspMsgParser
  59. {
  60.     public:
  61.         /** */
  62.         RtspMsgParser()
  63.         { }
  64.         /** If the savedMsg is null, it parses the given RTSP data and 
  65.             returns a RtspMsg object with preparsed info filed in. 
  66.             The RtspMsg object is allocated in the call and it is the 
  67.             responsibility of the caller to free the memory
  68.             The returned RtspMsg can be an incomplete rtsp msg 
  69.             to wait for completion;
  70.             If the savedMsg is not null, it append the savedMsg with more
  71.             data or complete it and return it after it parses the data.
  72.             @param data the TcpBufferData get from TCP stream
  73.             @param bytesNeedtoDecode bytes need to be decoded
  74.             @param bytesDecode bytes has been decoded after this function
  75.             @param savedMsg the msg that incomplete from last preparse
  76.           */
  77.         static Sptr< RtspMsg > preParse(const char* data, 
  78.                                         int bytesNeedtoDecode,
  79.                                         int& bytesDecode,
  80.                                         Sptr< RtspMsg > savedMsg) 
  81.             throw (RtspBadDataException&);
  82.         /** create the corresponding RtspMsg according the data's first word
  83.             @param data the raw data from TCP stream
  84.             @oaram bytesNeedtoDecode the bytes available for decoding
  85.          */
  86.         static Sptr< RtspMsg > createRtspMsg(const char* data, int bytesNeedtoDecode);
  87. };
  88. /* Local Variables: */
  89. /* c-file-style: "stroustrup" */
  90. /* indent-tabs-mode: nil */
  91. /* c-file-offsets: ((access-label . -) (inclass . ++)) */
  92. /* c-basic-offset: 4 */
  93. /* End: */
  94. #endif