Skip to content

Commit d549eed

Browse files
Merge pull request #44 from GeertvanHorrik/pr/async-services
Allow services to be created with custom transport
2 parents 33f8051 + ed37d16 commit d549eed

File tree

1 file changed

+36
-30
lines changed

1 file changed

+36
-30
lines changed

onvif/client.py

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -304,13 +304,14 @@ def get_definition(self, name, portType=None):
304304

305305
return xaddr, wsdlpath, binding_name
306306

307-
def create_onvif_service(self, name, portType=None):
307+
def create_onvif_service(self, name, portType=None, transport=None):
308308
"""
309309
Create ONVIF service client.
310310
311311
:param name: service name, should be present as a key within
312312
the `SERVICES` dictionary declared within the `onvif.definition` module
313313
:param portType:
314+
:param transport:
314315
:return:
315316
"""
316317
"""Create ONVIF service client"""
@@ -319,12 +320,15 @@ def create_onvif_service(self, name, portType=None):
319320
xaddr, wsdl_file, binding_name = self.get_definition(name, portType)
320321

321322
with self.services_lock:
323+
if not transport:
324+
transport = self.transport
325+
322326
service = ONVIFService(xaddr, self.user, self.passwd,
323327
wsdl_file, self.encrypt,
324328
self.daemon, no_cache=self.no_cache,
325329
dt_diff=self.dt_diff,
326330
binding_name=binding_name,
327-
transport=self.transport)
331+
transport=transport)
328332

329333
self.services[name] = service
330334

@@ -334,45 +338,47 @@ def create_onvif_service(self, name, portType=None):
334338

335339
return service
336340

337-
def create_devicemgmt_service(self):
341+
def create_devicemgmt_service(self, transport=None):
338342
# The entry point for devicemgmt service is fixed.
339-
return self.create_onvif_service('devicemgmt')
343+
return self.create_onvif_service('devicemgmt', transport=transport)
340344

341-
def create_media_service(self):
342-
return self.create_onvif_service('media')
345+
def create_media_service(self, transport=None):
346+
return self.create_onvif_service('media', transport=transport)
343347

344-
def create_ptz_service(self):
345-
return self.create_onvif_service('ptz')
348+
def create_ptz_service(self, transport=None):
349+
return self.create_onvif_service('ptz', transport=transport)
346350

347-
def create_imaging_service(self):
348-
return self.create_onvif_service('imaging')
351+
def create_imaging_service(self, transport=None):
352+
return self.create_onvif_service('imaging', transport=transport)
349353

350-
def create_deviceio_service(self):
351-
return self.create_onvif_service('deviceio')
354+
def create_deviceio_service(self, transport=None):
355+
return self.create_onvif_service('deviceio', transport=transport)
352356

353-
def create_events_service(self):
354-
return self.create_onvif_service('events')
357+
def create_events_service(self, transport=None):
358+
return self.create_onvif_service('events', transport=transport)
355359

356-
def create_analytics_service(self):
357-
return self.create_onvif_service('analytics')
360+
def create_analytics_service(self, transport=None):
361+
return self.create_onvif_service('analytics', transport=transport)
358362

359-
def create_recording_service(self):
360-
return self.create_onvif_service('recording')
363+
def create_recording_service(self, transport=None):
364+
return self.create_onvif_service('recording', transport=transport)
361365

362-
def create_search_service(self):
363-
return self.create_onvif_service('search')
366+
def create_search_service(self, transport=None):
367+
return self.create_onvif_service('search', transport=transport)
364368

365-
def create_replay_service(self):
366-
return self.create_onvif_service('replay')
369+
def create_replay_service(self, transport=None):
370+
return self.create_onvif_service('replay', transport=transport)
367371

368-
def create_pullpoint_service(self):
369-
return self.create_onvif_service('pullpoint', portType='PullPointSubscription')
372+
def create_pullpoint_service(self, transport=None):
373+
return self.create_onvif_service('pullpoint',
374+
portType='PullPointSubscription',
375+
transport=transport)
370376

371-
def create_receiver_service(self):
372-
return self.create_onvif_service('receiver')
377+
def create_receiver_service(self, transport=None):
378+
return self.create_onvif_service('receiver', transport=transport)
373379

374-
def create_notification_service(self):
375-
return self.create_onvif_service('notification')
380+
def create_notification_service(self, transport=None):
381+
return self.create_onvif_service('notification', transport=transport)
376382

377-
def create_subscription_service(self):
378-
return self.create_onvif_service('subscription')
383+
def create_subscription_service(self, transport=None):
384+
return self.create_onvif_service('subscription', transport=transport)

0 commit comments

Comments
 (0)