1#!/usr/bin/env python 2# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3# 4# Use of this source code is governed by a BSD-style license 5# that can be found in the LICENSE file in the root of the source 6# tree. An additional intellectual property rights grant can be found 7# in the file PATENTS. All contributing project authors may 8# be found in the AUTHORS file in the root of the source tree. 9 10"""Configuration class for network emulation.""" 11 12 13class ConnectionConfig(object): 14 """Configuration containing the characteristics of a network connection.""" 15 16 def __init__(self, num, name, receive_bw_kbps, send_bw_kbps, delay_ms, 17 packet_loss_percent, queue_slots): 18 self.num = num 19 self.name = name 20 self.receive_bw_kbps = receive_bw_kbps 21 self.send_bw_kbps = send_bw_kbps 22 self.delay_ms = delay_ms 23 self.packet_loss_percent = packet_loss_percent 24 self.queue_slots = queue_slots 25 26 def __str__(self): 27 """String representing the configuration. 28 29 Returns: 30 A string formatted and padded like this example: 31 12 Name 375 kbps 375 kbps 10 145 ms 0.1 % 32 """ 33 left_aligned_name = self.name.ljust(24, ' ') 34 return '%2s %24s %5s kbps %5s kbps %4s %5s ms %3s %%' % ( 35 self.num, left_aligned_name, self.receive_bw_kbps, self.send_bw_kbps, 36 self.queue_slots, self.delay_ms, self.packet_loss_percent) 37