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. get_events
()Return a list of currently bound events. get_handlers
(event)Return handlers bound to a specific event. get_request
()Handle a connection request. handle_error
(request, client_address)Handle an error gracefully. handle_request
()Handle one request, possibly blocking. handle_timeout
()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. server_activate
()Called by constructor to activate the server. server_bind
()Bind the socket and set the socket options. server_close
()service_actions
()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
active_associations
Return the server’s running Association
acceptor instancesaddress_family
allow_reuse_address
block_on_close
daemon_threads
request_queue_size
socket_type
timeout
-
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.
-