Server module

Server module.

Handle and response challenge requests from the frontend server.

class Server.EvIOLoop[source]

Bases: tornado.ioloop.PollIOLoop

Tornado compatible ioloop interface.

initialize(**kwargs)[source]

Initialize.

class Server.JudgeDispatcher[source]

Bases: object

Judge request dispatcher.

Static attributes:

chal_running_count (int): Number of current running challenges. chal_queue (deque): Pending challenges.

chal_queue = deque([])
chal_running_count = 0
static emit_chal(obj=None, callback=None)[source]

Emit a challenge to the queue and trigger the start_chal.

Parameters
  • obj (dict, optional) – Challenge config.

  • callback – Challange callback.

Returns

None

static start_chal(obj, callback)[source]

Start a challenge.

Check the challenge config, issue judge tasks, then report the result.

Parameters
  • obj (dict) – Challenge config.

  • callback – Challenge callback.

Returns

None

class Server.RequestClient(application, request, **kwargs)[source]

Bases: tornado.web.RequestHandler

HTTP request handler.

post(callback)[source]

Handle POST request

class Server.WebSocketClient(application, request, **kwargs)[source]

Bases: tornado.websocket.WebSocketHandler

Websocket request handler.

on_close()[source]

Handle close event

on_message(msg)[source]

Handle message event

open()[source]

Handle open event

Server.init_socket_server()[source]

Initialize socket server.

Server.main()[source]

Main function.