Line data Source code
1 : //
2 : // Author: Vladimir Migashko <migashko@gmail.com>, (C) 2016
3 : //
4 : // Copyright: See COPYING file that comes with this distribution
5 : //
6 :
7 : #pragma once
8 :
9 : #include "tank_config.hpp"
10 : #include <pingpong/ipinger.hpp>
11 : #include <wfc/domain_object.hpp>
12 : #include <wrtstat/wrtstat.hpp>
13 : #include <memory>
14 : #include <string>
15 :
16 :
17 : namespace demo{ namespace pingpong{
18 :
19 :
20 0 : class tank
21 : : public ::wfc::domain_object< ::wfc::iinterface, tank_config>
22 : //, public std::enable_shared_from_this<tank>
23 : {
24 : typedef std::chrono::high_resolution_clock clock_t;
25 : public:
26 : // domain_object
27 : virtual void start() override;
28 : virtual void stop() override;
29 : virtual void reconfigure() override;
30 : virtual void initialize() override;
31 : //virtual void ready() override;
32 : void fire();
33 : private:
34 : // void result_handler(clock_t::time_point tp, ball::ptr);
35 : private:
36 : std::weak_ptr<ipinger> _target;
37 : std::thread _thread;
38 : std::atomic<long> _discharge;
39 : std::atomic<size_t> _power;
40 : };
41 :
42 : }}
|