| #!/usr/bin/env python |
| # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| # |
| # Use of this source code is governed by a BSD-style license |
| # that can be found in the LICENSE file in the root of the source |
| # tree. An additional intellectual property rights grant can be found |
| # in the file PATENTS. All contributing project authors may |
| # be found in the AUTHORS file in the root of the source tree. |
| |
| """Configuration class for network emulation.""" |
| |
| |
| class ConnectionConfig(object): |
| """Configuration containing the characteristics of a network connection.""" |
| |
| def __init__(self, num, name, receive_bw_kbps, send_bw_kbps, delay_ms, |
| packet_loss_percent, queue_slots): |
| self.num = num |
| self.name = name |
| self.receive_bw_kbps = receive_bw_kbps |
| self.send_bw_kbps = send_bw_kbps |
| self.delay_ms = delay_ms |
| self.packet_loss_percent = packet_loss_percent |
| self.queue_slots = queue_slots |
| |
| def __str__(self): |
| """String representing the configuration. |
| |
| Returns: |
| A string formatted and padded like this example: |
| 12 Name 375 kbps 375 kbps 10 145 ms 0.1 % |
| """ |
| left_aligned_name = self.name.ljust(24, ' ') |
| return '%2s %24s %5s kbps %5s kbps %4s %5s ms %3s %%' % ( |
| self.num, left_aligned_name, self.receive_bw_kbps, self.send_bw_kbps, |
| self.queue_slots, self.delay_ms, self.packet_loss_percent) |