reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
CongestionManager.hxx
Go to the documentation of this file.
1#ifndef RESIP_CongestionManager_hxx
2#define RESIP_CongestionManager_hxx
3
4#include "rutil/Data.hxx"
5
6namespace resip
7{
8class FifoStatsInterface;
9
44{
45
46 public:
47
52 virtual ~CongestionManager(){};
53
65
75
81
86
90 virtual void logCurrentState() const=0;
91
96
97};
98
99
100} // namespace resip
101
102#endif
103
104/* ====================================================================
105 * The Vovida Software License, Version 1.0
106 *
107 * Redistribution and use in source and binary forms, with or without
108 * modification, are permitted provided that the following conditions
109 * are met:
110 *
111 * 1. Redistributions of source code must retain the above copyright
112 * notice, this list of conditions and the following disclaimer.
113 *
114 * 2. Redistributions in binary form must reproduce the above copyright
115 * notice, this list of conditions and the following disclaimer in
116 * the documentation and/or other materials provided with the
117 * distribution.
118 *
119 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
120 * and "Vovida Open Communication Application Library (VOCAL)" must
121 * not be used to endorse or promote products derived from this
122 * software without prior written permission. For written
123 * permission, please contact vocal@vovida.org.
124 *
125 * 4. Products derived from this software may not be called "VOCAL", nor
126 * may "VOCAL" appear in their name, without prior written
127 * permission of Vovida Networks, Inc.
128 *
129 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
130 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
131 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
132 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
133 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
134 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
135 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
136 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
137 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
138 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
139 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
140 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
141 * DAMAGE.
142 *
143 * ====================================================================
144 *
145 * This software consists of voluntary contributions made by Vovida
146 * Networks, Inc. and many individuals on behalf of Vovida Networks,
147 * Inc. For more information on Vovida Networks, Inc., please see
148 * <http://www.vovida.org/>.
149 *
150 */
Abstract base class that provides a basic congestion management interface.
virtual void unregisterFifo(resip::FifoStatsInterface *fifo)=0
Unregisters a fifo with the congestion manager.
virtual RejectionBehavior getRejectionBehavior(const FifoStatsInterface *fifo) const =0
Return the current rejection behavior for this fifo.
virtual void registerFifo(resip::FifoStatsInterface *fifo)=0
Registers a fifo with the congestion manager.
virtual EncodeStream & encodeCurrentState(EncodeStream &strm) const =0
Get the current state of all monitored fifos.to a stream.
virtual void logCurrentState() const =0
Log the current state of all monitored fifos.
@ REJECTING_NEW_WORK
Overloaded, should refuse new work.
@ NORMAL
Not rejecting any work.
@ REJECTING_NON_ESSENTIAL
Rejecting all work that is non-essential to the health of the system (ie, if dropping something is li...
Interface for providing metrics on FIFOs, primarily used by CongestionManager.
dcm! – add UnusedChecking(_enum) below;
#define EncodeStream