⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monitor.h

📁 rtpmon-1.0a7.tar.gz for UNIX like
💻 H
字号:
/* * Copyright (c) 1996 The Regents of the University of California. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement * is hereby granted, provided that the above copyright notice and the * following two paragraphs appear in all copies of this software. * * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING * OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE * UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * * $Id: monitor.h,v 1.7 1996/10/23 04:30:56 aswan Exp $ */#ifndef monitor_h#define monitor_h#include "net.h"#include "iohandler.h"#include "timer.h"class Monitor;class UpdateTimer : public Timer {  public:    inline UpdateTimer(Monitor& m);    void timeout();  protected:    Monitor& m_;    float bw_;    int inactive_;};class Member;class Sender;class Monitor : public TclObject , public IOHandler {  public:    Monitor();    virtual ~Monitor();    virtual int command(int argc, const char*const* argv);    virtual void dispatch(int mask);    inline Network* net() const { return (net_); }    inline void net(Network* net) {	unlink();	link(net->rchannel(), TK_READABLE);	net_ = net;    }    inline int recv(u_char* bp, int len, u_int32_t& addr) {	return (net_->recv(bp, len, addr));    }#define SORT_MAX	-1#define SORT_AVG	-2#define SORT_ADDR	-3    void sort();    inline void sort(int type) { sorttype_ = type; sort(); }        int CheckActive(double interval);    void median();  protected:    Member* lookup(u_int32_t ssrc, u_int32_t addr);    int slookup(u_int32_t srcid, int& pos);    int getpos();    void freepos(int pos);        void parse_sr(rtcphdr* rh, int flags, u_char* ep,		  Member *m, u_int32_t addr);    void parse_rr(rtcphdr* rh, int flags, u_char* ep,		  Member *l, u_int32_t addr);    void parse_rr_records(u_int32_t ssrc, rtcp_rr* rr, int cnt,			  u_char* ep, Member *m, u_int32_t addr);    void parse_sdes(rtcphdr* rh, int flags, u_char* ep, Member *m,		    u_int32_t ssrc, u_int32_t addr);    int sdesbody(u_int32_t* p, u_char* ep, Member* m, u_int32_t addr);    void parse_bye(rtcphdr* rh, int flags, u_char* ep, Member *m);    Member* dosort(Member* l);    Member* mselect(Member* m, int i, int low, int high, int n);    Network* net_;    u_char* pktbuf_;        int nrunt_;    int badversion_;    int badpt_;#define HASH_SIZE 1024    int nmembers_;    Member* members_;    Member* senders_;    Member* last_;    Member* hashtab_[HASH_SIZE];    Member* median_;    int avgpktsize_;    u_int32_t bits_;	/* XXX limits to 32 senders */    int sorttype_;    int stat_;    u_int32_t thresh_;    UpdateTimer ut_;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -