pynetdicom.transport.ThreadedAssociationServer¶
-
class
pynetdicom.transport.
ThreadedAssociationServer
(ae, address, ae_title, contexts, ssl_context=None, evt_handlers=None)¶ An
AssociationServer
suitable for threading.-
__init__
(ae, address, ae_title, contexts, ssl_context=None, evt_handlers=None)¶ Create a new AssociationServer, bind a socket and start listening.
- Parameters
ae (ae.ApplicationEntity) – The parent AE that’s running the server.
address (2-tuple) – The
(host, port)
that the server should run on.ae_title (bytes) – The AE title of the SCP.
contexts (list of presentation.PresentationContext) – The SCPs supported presentation contexts.
ssl_context (ssl.SSLContext, optional) – If TLS is to be used then this should be the
ssl.SSLContext
used to wrap the client sockets, otherwise ifNone
then no TLS will beused (default).evt_handlers (list of 2-tuple, optional) – A list of
(event, callable)
, the callable function to run when event occurs.
Methods
__init__
(ae, address, ae_title, contexts[, …])Create a new AssociationServer, bind a socket and start listening.
bind
(event, handler)Bind a callable handler to an event.
close_request
(request)Called to clean up an individual request.
fileno
()Return socket file number.
finish_request
(request, client_address)Finish one request by instantiating RequestHandlerClass.
Return a list of currently bound events.
get_handlers
(event)Return handlers bound to a specific event.
Handle a connection request.
handle_error
(request, client_address)Handle an error gracefully.
Handle one request, possibly blocking.
Called if no new request arrives within self.timeout.
process_request
(request, client_address)Start a new thread to process the request.
process_request_thread
(request, client_address)Process a connection request.
serve_forever
([poll_interval])Handle one request at a time until shutdown.
Called by constructor to activate the server.
Bind the socket and set the socket options.
server_close
()Called by the serve_forever() loop.
shutdown
()Completely shutdown the server and close it’s socket.
shutdown_request
(request)Called to shutdown and close an individual request.
unbind
(event, handler)Unbind a callable handler from an event.
verify_request
(request, client_address)Verify the request.
Attributes
Return the server’s running
Association
acceptor instancesaddress_family
allow_reuse_address
block_on_close
daemon_threads
request_queue_size
socket_type
timeout
-
property
active_associations
¶ Return the server’s running
Association
acceptor instances
-
bind
(event, handler)¶ Bind a callable handler to an event.
- Parameters
event (3-tuple) – The event to bind the function to.
handler (callable) – The function that will be called if the event occurs.
-
close_request
(request)¶ Called to clean up an individual request.
-
fileno
()¶ Return socket file number.
Interface required by selector.
-
finish_request
(request, client_address)¶ Finish one request by instantiating RequestHandlerClass.
-
get_events
()¶ Return a list of currently bound events.
-
get_handlers
(event)¶ Return handlers bound to a specific event.
- Parameters
event (tuple) – The event bound to the handlers.
- Returns
If the event is a notification event then returns a list of callable functions bound to
event
, if the event is an intervention event then returns either a callable function if a handler is bound to the event orNone
if no handler has been bound.- Return type
callable, list of callable or None
-
get_request
()¶ Handle a connection request.
If
ssl_context
is set then the client socket will be wrapped usingssl_context.wrap_socket()
.- Returns
client_socket (socket._socket) – The connection request.
address (2-tuple) – The client’s address as
(host, port)
.
-
handle_error
(request, client_address)¶ Handle an error gracefully. May be overridden.
The default is to print a traceback and continue.
-
handle_request
()¶ Handle one request, possibly blocking.
Respects self.timeout.
-
handle_timeout
()¶ Called if no new request arrives within self.timeout.
Overridden by ForkingMixIn.
-
process_request
(request, client_address)¶ Start a new thread to process the request.
-
process_request_thread
(request, client_address)¶ Process a connection request.
-
serve_forever
(poll_interval=0.5)¶ Handle one request at a time until shutdown.
Polls for shutdown every poll_interval seconds. Ignores self.timeout. If you need to do periodic tasks, do them in another thread.
-
server_activate
()¶ Called by constructor to activate the server.
May be overridden.
-
server_bind
()¶ Bind the socket and set the socket options.
socket.SO_REUSEADDR
is set to 1socket.SO_RCVTIMEO
is set toAE.network_timeout
unless the value isNone
in which case it will be left unset.
-
service_actions
()¶ Called by the serve_forever() loop.
May be overridden by a subclass / Mixin to implement any code that needs to be run during the loop.
-
shutdown
()¶ Completely shutdown the server and close it’s socket.
-
shutdown_request
(request)¶ Called to shutdown and close an individual request.
-
unbind
(event, handler)¶ Unbind a callable handler from an event.
- Parameters
event (3-tuple) – The event to unbind the function from.
handler (callable) – The function that will no longer be called if the event occurs.
-
verify_request
(request, client_address)¶ Verify the request. May be overridden.
Return True if we should proceed with this request.
-