Fawkes API
Fawkes Development Version
gossip_thread.h
1
2
/***************************************************************************
3
* gossip_thread.h - Robot Group Communication Plugin
4
*
5
* Created: Fri Feb 28 11:09:37 2014
6
* Copyright 2006-2014 Tim Niemueller [www.niemueller.de]
7
*
8
****************************************************************************/
9
10
/* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU Library General Public License for more details.
19
*
20
* Read the full text in the LICENSE.GPL file in the doc directory.
21
*/
22
23
#ifndef _PLUGINS_GOSSIP_GOSSIP_THREAD_H_
24
#define _PLUGINS_GOSSIP_GOSSIP_THREAD_H_
25
26
#include <aspect/aspect_provider.h>
27
#include <aspect/configurable.h>
28
#include <aspect/logging.h>
29
#include <aspect/network.h>
30
#include <core/threading/thread.h>
31
#include <plugins/gossip/aspect/gossip_inifin.h>
32
33
#include <memory>
34
35
class
GossipThread
:
public
fawkes::Thread
,
36
public
fawkes::LoggingAspect
,
37
public
fawkes::ConfigurableAspect
,
38
public
fawkes::AspectProviderAspect
,
39
public
fawkes::NetworkAspect
40
{
41
public
:
42
GossipThread
();
43
virtual
~GossipThread
();
44
45
virtual
void
init
();
46
virtual
void
loop
();
47
virtual
void
finalize
();
48
49
/** Stub to see name in backtrace for easier debugging. @see Thread::run() */
50
protected
:
51
virtual
void
52
run
()
53
{
54
Thread::run();
55
}
56
57
private
:
58
std::string cfg_service_name_;
59
60
std::shared_ptr<fawkes::GossipGroupManager> group_mgr_;
61
fawkes::GossipAspectIniFin
gossip_aspect_inifin_;
62
};
63
64
#endif
GossipThread::loop
virtual void loop()
Code to execute in the thread.
Definition:
gossip_thread.cpp:141
GossipThread::init
virtual void init()
Initialize the thread.
Definition:
gossip_thread.cpp:49
fawkes::AspectProviderAspect
Thread aspect provide a new aspect.
Definition:
aspect_provider.h:36
GossipThread
Robot Group Communication.
Definition:
gossip_thread.h:40
fawkes::LoggingAspect
Thread aspect to log output.
Definition:
logging.h:33
GossipThread::run
virtual void run()
Stub to see name in backtrace for easier debugging.
Definition:
gossip_thread.h:52
GossipThread::finalize
virtual void finalize()
Finalize the thread.
Definition:
gossip_thread.cpp:134
fawkes::GossipAspectIniFin
GossipAspect initializer/finalizer.
Definition:
gossip_inifin.h:35
GossipThread::~GossipThread
virtual ~GossipThread()
Destructor.
Definition:
gossip_thread.cpp:44
fawkes::Thread
Thread class encapsulation of pthreads.
Definition:
thread.h:46
fawkes::ConfigurableAspect
Thread aspect to access configuration data.
Definition:
configurable.h:33
GossipThread::GossipThread
GossipThread()
Constructor.
Definition:
gossip_thread.cpp:38
fawkes::NetworkAspect
Thread aspect for network communication.
Definition:
network.h:35
src
plugins
gossip
gossip_thread.h
Generated by
1.8.20