1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// -*-c++-*-
/*
*Copyright:
Copyright (C) Hidehisa AKIYAMA
This code is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
This code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this code; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*EndCopyright:
*/
/////////////////////////////////////////////////////////////////////
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "sample_player.h"
#include <rcsc/common/basic_client.h>
#include <iostream>
#include <cstdlib> // exit
#include <cerrno> // errno
#include <cstring> // strerror
#include <csignal> // sigaction
namespace {
SamplePlayer agent;
/*-------------------------------------------------------------------*/
void
sig_exit_handle( int )
{
std::cerr << "Killed. Exiting..." << std::endl;
agent.finalize();
std::exit( EXIT_FAILURE );
}
}
/*-------------------------------------------------------------------*/
int
main( int argc, char **argv )
{
struct sigaction sig_action;
sig_action.sa_handler = &sig_exit_handle;
sig_action.sa_flags = 0;
if ( sigaction( SIGINT, &sig_action , NULL ) != 0
|| sigaction( SIGTERM, &sig_action , NULL ) != 0
|| sigaction( SIGHUP, &sig_action , NULL ) != 0 )
/*if ( signal(SIGINT, &sigExitHandle) == SIG_ERR
|| signal(SIGTERM, &sigExitHandle) == SIG_ERR
|| signal(SIGHUP, &sigExitHandle) == SIG_ERR )*/
{
std::cerr << __FILE__ << ": " << __LINE__
<< ": could not set signal handler: "
<< std::strerror( errno ) << std::endl;
std::exit( EXIT_FAILURE );
}
rcsc::BasicClient client;
if ( ! agent.init( &client, argc, argv ) )
{
return EXIT_FAILURE;
}
/*
You should add your copyright message here.
*/
// std::cout << "*****************************************************************\n"
// << " This program is modified by <Team Name>\n"
// << " Copyright 20xx. <Your name>.\n"
// << " <Affiliation>\n"
// << " All rights reserved.\n"
// << "*****************************************************************\n"
// << std::flush;
/*
Do NOT remove the following copyright notice!
*/
std::cout << "*****************************************************************\n"
<< " This program is based on agent2d created by Hidehisa Akiyama.\n"
<< " Copyright 2006 - 2011. Hidehisa Akiyama and Hiroki Shimora.\n"
<< " All rights reserved.\n"
<< "*****************************************************************\n"
<< std::flush;
client.run( &agent );
return EXIT_SUCCESS;
}