Interface:Управление турниром до его начала

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Веб-интерфейс пользователя/Управление турниром до его начала

На рис. 4.3 показаны элементы управления турниром, доступные до начала турнира. Они выделены красным подчёркиванием.

1. Состояние турнира “The contest is not started” — турнир не начат.

2. Астрономическое время программы-сервера турнира serve. Время считывается из файла состояния сервера, который обновляется каждую секунду. Таким образом можно определить, что программа serve обслуживает данный турнир.

  • Если турнир обслуживается программой serve, работающей самостоятельно, и время сервера слишком отличается от времени клиента (см. ниже), CGI-программа master диагностирует ошибку “Server is down” и генерирует соответствующую диагностическую страницу.
  • Если программа serve работает под управлением программы супер-сервера super-serve, которая запускает программу-cервер некоторого турнира по требованию, то есть когда поступает запрос к этому турниру, время клиента и время сервера могут при первом обращении сильно отличатся. В этом случае время сервера показывает, когда последний раз обновлялся файл состояния турнира. Ошибка “Server is down” в этом случае не диагностируется. Обратите внимание, что для работы CGI-программ с турниром под управлением super-serve в конфигурационном файле турнира contest.xml в элементе client_flags необходимо установить флаг клиентов IGNORE_TIME_SKEW,

например, следующим образом.

<client_flags>IGNORE_TIME_SKEW</client_flags>

3. Астрономическое время в CGI-программе master, которая в данный момент обрабатывает запрос на генерацию html-страницы, поступивший от веб-браузера. К сожалению, “Client time” — неудачное название, так как это время не имеет никакого отношения к времени на компьютере пользователя, на котором запущен веб-браузер, демонстрирующий данную страницу.

4. Состояние турнира — турнир не начат.

5. Кнопка начала турнира. С помощью этой кнопки можно в любой момент времени начать турнир.

Чтобы пользователь мог стартовать турнир, в конфигурационном файле турнира contest.xml в элементе cap для него должен быть установлен бит CONTROL_CONTEST.

6. Здесь отображается планируемое время начала турнира. Оно может быть не установлено (отображается “Not set” как на рисунке), либо может быть установлено на любое время в пределах текущих суток. В момент, когда астрономическое время становится не меньше, чем время, указанное в данной клетке таблицы, турнир начинается автоматически.

7. С помощью данного элемента управления можно установить время автоматического начала турнира. Для этого нужно ввести время в поле ввода и затем нажать на кнопку “Reschedule”. Время начала турнира вводится в формате H[:M], где H — часы, а M — минуты. Часы вводятся в 24-часовом формате, то есть представляют собой целое число от 0 до 23. Минуты — это целое число от 0 до 59. Минутная часть вместе с двоеточием может быть опущена. Если устанавливается время суток, меньшее текущего, турнир стартует автоматически немедленно.

Чтобы пользователь мог устанавливать время автоматического начала турнира, в конфигурационном файле турнира contest.xml в элементе cap для него должен быть установлен бит CONTROL_CONTEST.

8. В данной ячейке таблицы отображается установленная продолжительность турнира. Продолжительность турнира отображается либо как “Unlimited”, если продолжительность турнира не ограничена, либо в формате HH:MM:SS, где HH — количество полных часов, MM — количество полных минут в неполном последнем часе, SS — количество секунд в последней минуте.

9. Данный элемент управления позволяет изменить установленную продолжительность турнира. В поле ввода необходимо ввести новую продолжительность турнира, затем нажать кнопку “Change duration”. Продолжительность турнира задаётся в виде H[:M], где H — количество часов, а M — количество минут. Количество минут должно находиться в интервале от 0 до 59. Минутная составляющая вместе с двоеточием может быть опущена. Максимальная продолжительность турнира, которую можно установить с помощью данного элемента управления, равна 1000000 минутам, что соответствует примерно 694 суткам. Продолжительность турнира неограниченной продолжительности не может быть изменена. Продолжительность турнира ограниченной продолжительности не может быть сделана неограниченной.

Начальная продолжительность турнира устанавливается в конфигурационном файле сервера турнира serve.cfg с помощью глобальной конфигурационной переменной contest_time.

Чтобы пользователь мог изменять продолжительность турнира, в конфигурационном файле турнира contest.xml в элементе cap для него должен быть установлен бит CONTROL_CONTEST.

Остальные элементы управления могут использоваться, когда турнир уже стартовал, и рассматриваются далее.