root/vic/branches/cc/cc/tfwc_rcvr.h @ 4245

Revision 4245, 2.4 KB (checked in by soohyunc, 6 years ago)

o now, ackvec build funcion is moved to TfwcRcvr? correctly

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Rev URL
Line 
1/*
2 * Copyright (c) 2008 University College London
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 *    notice, this list of conditions and the following disclaimer in the
12 *    documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 *    must display the following acknowledgement:
15 *  This product includes software developed by the MASH Research
16 *  Group at the University of California Berkeley.
17 * 4. Neither the name of the University nor of the Research Group may be
18 *    used to endorse or promote products derived from this software without
19 *    specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * $Id$
34 */
35
36#ifndef vic_tfwc_rcvr_h
37#define vic_tfwc_rcvr_h
38
39#include "tfwc_sndr.h"
40
41// set AckVec bitmap
42#define SET_BIT_VEC(ackvec_, bit) (ackvec_ = ((ackvec_ << 1) | bit))
43
44// see AckVec bitmap
45#define SEE_BIT_VEC(ackvec_, ix, seqno) ((1 << (seqno - ix)) & ackvec_)
46
47class TfwcRcvr {
48public:
49        TfwcRcvr();
50        void set_received_seqno(u_int16_t seqno, u_int16_t lastseq);
51
52protected:
53        inline u_int32_t get_ackvec() { return tfwcAV; }
54        u_int32_t tfwcAV;       // AckVec (bit vector)
55        u_int16_t seqno_;       // received RTP packet seqno
56        u_int16_t lastseq_;     // last RTP packet seqno
57private:
58        void ackvec_manager(u_int16_t seqno, u_int16_t latseq);
59};
60
61#endif
Note: See TracBrowser for help on using the browser.