# 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