From 8b23a6c7e1aee255004dd19098d4c2462b61b849 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Tue, 3 Mar 2009 19:30:32 -0800 Subject: auto import from //depot/cupcake/@135843 --- shaper.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 shaper.h (limited to 'shaper.h') diff --git a/shaper.h b/shaper.h new file mode 100644 index 0000000..45dbd5b --- /dev/null +++ b/shaper.h @@ -0,0 +1,51 @@ +/* Copyright (C) 2007-2008 The Android Open Source Project +** +** This software is licensed under the terms of the GNU General Public +** License version 2, as published by the Free Software Foundation, and +** may be copied, distributed, and modified under those terms. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +*/ +#ifndef _SLIRP_SHAPER_H_ +#define _SLIRP_SHAPER_H_ + +#include + +/* a NetShaper object is used to limit the throughput of data packets + * at a fixed rate expressed in bits/seconds + */ +typedef struct NetShaperRec_* NetShaper; +typedef void (*NetShaperSendFunc)( void* data, size_t size, void* opaque); + +NetShaper netshaper_create ( int do_copy, + NetShaperSendFunc send_func ); + +void netshaper_set_rate(NetShaper shaper, double rate ); + +void netshaper_send( NetShaper shaper, void* data, size_t size ); + +void netshaper_send_aux( NetShaper shaper, void* data, size_t size, void* opaque ); + +int netshaper_can_send( NetShaper shaper ); + +void netshaper_destroy (NetShaper shaper); + +/* a NetDelay object is used to simulate network connection latencies */ +typedef struct NetDelayRec_* NetDelay; + +NetDelay netdelay_create( NetShaperSendFunc send_func ); +void netdelay_set_latency( NetDelay delay, int min_ms, int max_ms ); +void netdelay_send( NetDelay delay, const void* data, size_t size ); +void netdelay_send_aux( NetDelay delay, const void* data, size_t size, void* opaque ); +void netdelay_destroy( NetDelay delay ); + +/** in vl.c */ +/* network traffic shaper and delayer */ +extern NetShaper slirp_shaper_in; +extern NetShaper slirp_shaper_out; +extern NetDelay slirp_delay_in; + +#endif /* _SLIRP_SHAPER_H_ */ -- cgit v1.1