| # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| import time |
| |
| def web_socket_do_extra_handshake(request): |
| # This example handler accepts any request. See origin_check_wsh.py for how |
| # to reject access from untrusted scripts based on origin value. |
| |
| pass # Always accept. |
| |
| def make_slice(start_time, elapsed_time, label, last): |
| out = [] |
| out.append("{") |
| out.append('\"l\": \"{0}\",'.format(label)) |
| out.append('\"s\": {0},'.format(start_time)) |
| out.append('\"e\": {0}'.format(start_time+elapsed_time)) |
| out.append('}') |
| if last == False: |
| out.append(',') |
| return ''.join(out) |
| |
| def make_thread(thread_name, base_time): |
| out = [] |
| out.append('\"n\": \"{0}\",'.format(thread_name)) |
| out.append('\"s\": [') |
| out.append(make_slice(base_time, 4, "alligator", False)) |
| out.append(make_slice(base_time+2, 1, "bandicoot", False)) |
| out.append(make_slice(base_time+5, 1, "cheetah", True)) |
| out.append(']') |
| return ''.join(out) |
| |
| def make_thread_payload(pid, thread_name, base_time): |
| out = [] |
| out.append('\"pid\": \"{0}\",'.format(pid)) |
| out.append('\"td\": {') |
| out.append(make_thread(thread_name, base_time)) |
| out.append('}') |
| return ''.join(out) |
| |
| def make_thread_command(base_time, thread_name): |
| out = [] |
| out.append('{ \"cmd\": \"ptd\",') |
| out.append(make_thread_payload('314159', thread_name, base_time)) |
| out.append('}') |
| return ''.join(out) |
| |
| def make_count(start_time, value, last): |
| out = [] |
| out.append('{') |
| out.append('\"t\": {0},'.format(start_time)) |
| out.append('\"v\": [{0}]'.format(value)) |
| out.append('}') |
| if last == False: |
| out.append(',') |
| return ''.join(out) |
| |
| def make_counter(counter_name, series_name, base_time): |
| out = [] |
| out.append('\"n\": \"{0}\",'.format(counter_name)) |
| out.append('\"sn\": [\"{0}\"],'.format(series_name)) |
| out.append('\"sc\": [2],') |
| out.append('\"c\": [') |
| out.append(make_count(base_time, 16, False)) |
| out.append(make_count(base_time+1, 32, False)) |
| out.append(make_count(base_time+2, 48, False)) |
| out.append(make_count(base_time+3, 64, False)) |
| out.append(make_count(base_time+8, 16, True)) |
| out.append(']') |
| return ''.join(out) |
| |
| def make_counter_payload(pid, counter_name, series_name, base_time): |
| out = [] |
| out.append('\"pid\": \"{0}\",'.format(pid)) |
| out.append('\"cd\": {') |
| out.append(make_counter(counter_name, series_name, base_time)) |
| out.append('}') |
| return ''.join(out) |
| |
| def make_counter_command(base_time, counter_name, series_name): |
| out = [] |
| out.append('{ \"cmd\": \"pcd\",') |
| out.append(make_counter_payload('314159', counter_name, |
| series_name, base_time)) |
| out.append('}') |
| return ''.join(out) |
| |
| def web_socket_transfer_data(request): |
| start_time = 0; |
| while True: |
| msg = make_thread_command(start_time, 'apple') |
| request.ws_stream.send_message(msg, binary=False) |
| msg = make_thread_command(start_time+1, 'banana') |
| request.ws_stream.send_message(msg, binary=False) |
| msg = make_thread_command(start_time+2, 'cherry') |
| request.ws_stream.send_message(msg, binary=False) |
| msg = make_counter_command(start_time+2, 'Base', 'Bytes') |
| request.ws_stream.send_message(msg, binary=False) |
| msg = make_counter_command(start_time+3, 'Font', 'Bytes') |
| request.ws_stream.send_message(msg, binary=False) |
| msg = make_counter_command(start_time+5, 'Textures', 'Bytes') |
| request.ws_stream.send_message(msg, binary=False) |
| start_time += 16 |
| time.sleep(0.16) |
| |
| # vi:sts=4 sw=4 et |