iCub-main
ethReceiver.h
Go to the documentation of this file.
1 // -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2 
3 /*
4  * Copyright (C) 2017 iCub Facility - Istituto Italiano di Tecnologia
5  * Author: Alberto Cardellino, Marco Accame
6  * email: alberto.cardellino@iit.it, marco.accame@iit.it
7  * website: www.robotcub.org
8  * Permission is granted to copy, distribute, and/or modify this program
9  * under the terms of the GNU General Public License, version 2 or any
10  * later version published by the Free Software Foundation.
11  *
12  * A copy of the license can be found at
13  * http://www.robotcub.org/icub/license/gpl.txt
14  *
15  * This program is distributed in the hope that it will be useful, but
16  * WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
18  * Public License for more details
19 */
20 
21 // - include guard ----------------------------------------------------------------------------------------------------
22 
23 #ifndef _ETHRECEIVER_H_
24 #define _ETHRECEIVER_H_
25 
26 // -- class EthReceiver
27 // -- it is a rate thread created by singleton TheEthManager.
28 // -- it regularly wakes up to see if a packet is in its listening socket and it parses that with methods made available by TheEthManager.
29 
30 //#include <ethManager.h>
31 
32 #include <ace/SOCK_Dgram.h>
33 
34 #include <yarp/os/PeriodicThread.h>
35 
36 
37 #ifdef NETWORK_PERFORMANCE_BENCHMARK
39 #endif
40 
41 
42 namespace eth {
43 
44  class TheEthManager;
45 
46  class EthReceiver : public yarp::os::PeriodicThread
47  {
48  private:
49  int rateofthread;
50 
51  ACE_SOCK_Dgram *recv_socket;
52  eth::TheEthManager *ethManager;
53  double statPrintInterval;
54 #ifdef NETWORK_PERFORMANCE_BENCHMARK
55  Tools::Emb_PeriodicEventVerifier m_perEvtVerifier;
56 #endif
57 
58  public:
59 
61 
62  EthReceiver(int rxrate);
63  ~EthReceiver();
64  bool config(ACE_SOCK_Dgram *pSocket, eth::TheEthManager* _ethManager);
65  bool threadInit();
66  void run();
67  void onStop();
68  };
69 
70 } // namespace eth
71 
72 
73 #endif // include-guard
74 
75 
76 // - end-of-file (leave a blank line after)----------------------------------------------------------------------------
77 
78 
79 
80 
81 
82 
83 
Tools::Emb_PeriodicEventVerifier.
bool config(ACE_SOCK_Dgram *pSocket, eth::TheEthManager *_ethManager)
EthReceiver(int rxrate)
Definition: ethReceiver.cpp:65