|  | #!/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) |