RSB
0.7.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
SpreadConnection.h
Go to the documentation of this file.
1
/* ============================================================
2
*
3
* This file is a part of the RSB project
4
*
5
* Copyright (C) 2010 by Sebastian Wrede <swrede at techfak dot uni-bielefeld dot de>
6
*
7
* This file may be licensed under the terms of the
8
* GNU Lesser General Public License Version 3 (the ``LGPL''),
9
* or (at your option) any later version.
10
*
11
* Software distributed under the License is distributed
12
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
13
* express or implied. See the LGPL for the specific language
14
* governing rights and limitations.
15
*
16
* You should have received a copy of the LGPL along with this
17
* program. If not, go to http://www.gnu.org/licenses/lgpl.html
18
* or write to the Free Software Foundation, Inc.,
19
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20
*
21
* The development of this software was supported by:
22
* CoR-Lab, Research Institute for Cognition and Robotics
23
* Bielefeld University
24
*
25
* ============================================================ */
26
27
#pragma once
28
29
#include <boost/shared_ptr.hpp>
30
#include <boost/thread.hpp>
31
#include <boost/thread/condition.hpp>
32
33
#include <rsc/logging/Logger.h>
34
35
#include "
SpreadMessage.h
"
36
#include "rsb/rsbexports.h"
37
38
// forward declaration to avoid exposing sp.h with strange defines that prevent
39
// other code from compiling
40
typedef
int
mailbox
;
41
42
namespace
rsb {
43
namespace
spread {
44
45
RSB_EXPORT std::string
defaultHost
();
46
47
RSB_EXPORT
unsigned
int
defaultPort
();
48
58
class
RSB_EXPORT
SpreadConnection
{
59
public
:
60
SpreadConnection
(
const
std::string& prefix,
61
const
std::string& host =
defaultHost
(),
62
unsigned
int
port =
defaultPort
());
63
virtual
~
SpreadConnection
();
64
70
78
void
activate();
79
86
void
deactivate();
87
89
94
102
void
send(
const
SpreadMessage
& msg);
103
116
void
receive(
SpreadMessagePtr
sm);
117
119
130
void
interruptReceive();
131
137
bool
isActive();
138
144
unsigned
long
getMsgCount();
145
153
mailbox
* getMailbox();
154
155
private
:
156
std::string generateId(
const
std::string& prefix);
157
158
rsc::logging::LoggerPtr
logger
;
162
volatile
bool
connected
;
166
mailbox
con
;
170
std::string
host
;
174
unsigned
int
port
;
180
std::string
spreadname
;
184
std::string
spreadpg
;
188
std::string
conId
;
192
unsigned
long
msgCount
;
193
};
194
195
typedef
boost::shared_ptr<SpreadConnection>
SpreadConnectionPtr
;
196
197
}
198
199
}
rsb
transport
spread
SpreadConnection.h
Generated on Sun Mar 16 2014 14:18:58 for RSB by
1.8.1.2