102 |
102 |
return self.server.get.async().get(timeout = self.timeout)
|
103 |
103 |
|
104 |
104 |
class Connection (object):
|
105 |
|
def __init__(self, port, controlScope, listenScope):
|
|
105 |
def __init__(self, port, controlScope, listenScope, converters = None):
|
106 |
106 |
self.__logger = getLoggerByClass(self.__class__)
|
107 |
107 |
|
108 |
108 |
config = rsb.ParticipantConfig.fromDict({ 'transport.socket.enabled': '1',
|
109 |
109 |
'transport.socket.host': 'localhost',
|
110 |
110 |
'transport.socket.port': '%s' % port,
|
111 |
111 |
'transport.socket.server': '0' })
|
|
112 |
if converters:
|
|
113 |
config.getTransport('socket').setConverters(converters)
|
112 |
114 |
self.__server = rsb.createRemoteServer(scope = controlScope, config = config)
|
113 |
115 |
|
114 |
116 |
self.__listener = rsb.createListener(scope = listenScope, config = config)
|
... | ... | |
167 |
169 |
|
168 |
170 |
class Bag (Connection):
|
169 |
171 |
def __init__(self, file, channels = None,
|
170 |
|
bagPlay = prefix + '/bin/bag-play'):
|
|
172 |
bagPlay = prefix + '/bin/bag-play',
|
|
173 |
converters = None):
|
171 |
174 |
self.__logger = getLoggerByClass(self.__class__)
|
172 |
175 |
|
173 |
176 |
self.__file = file
|
... | ... | |
194 |
197 |
self.__process = subprocess.Popen(command, close_fds = True)
|
195 |
198 |
|
196 |
199 |
time.sleep(2)
|
197 |
|
super(Bag, self).__init__(self.__port, self.__controlScope, self.__listenScope)
|
|
200 |
super(Bag, self).__init__(self.__port, self.__controlScope, self.__listenScope, converters=converters)
|
198 |
201 |
|
199 |
202 |
def _cleanup(self):
|
200 |
203 |
super(self.__class__, self)._cleanup()
|
... | ... | |
233 |
236 |
return '<%s for "%s" at %s>' \
|
234 |
237 |
% (type(self).__name__, string, id(self))
|
235 |
238 |
|
236 |
|
def openBag(file, channels = None, bagPlay = prefix + '/bin/bag-play'):
|
|
239 |
def openBag(file, channels = None, bagPlay = prefix + '/bin/bag-play',
|
|
240 |
converters = None):
|
237 |
241 |
"""
|
238 |
242 |
Open B{file}, potentially selecting B{channels}, for processing and
|
239 |
243 |
return a L{Bag} object representing the log file.
|
... | ... | |
247 |
251 |
@param bagPlay: If supplied, filename of the bag-play binary that
|
248 |
252 |
should be used.
|
249 |
253 |
@type bagPlay: str
|
|
254 |
@param converters: converters to use for receiving events. Defaults to the
|
|
255 |
converters registered in the RSB repository
|
|
256 |
@type converters: ConverterSelectionStrategy or None
|
250 |
257 |
@rtype: Bag
|
251 |
258 |
|
252 |
259 |
@author: jmoringe
|
253 |
260 |
|
254 |
261 |
"""
|
255 |
|
return Bag(file, channels = channels, bagPlay = bagPlay)
|
|
262 |
return Bag(file, channels = channels, bagPlay = bagPlay, converters = converters)
|
256 |
|
-
|