Class: Aggro::Server
- Inherits:
-
Object
- Object
- Aggro::Server
- Defined in:
- lib/aggro/server.rb
Overview
Public: Binds a transport endpoint and handles incoming messages.
Constant Summary collapse
- RAW_HANDLER =
:handle_raw
- HANDLERS =
{ Message::Command => :handle_command, Message::CreateAggregate => :handle_create, Message::GetEvents => :handle_get_events, Message::Heartbeat => :handle_heartbeat, Message::PublisherEndpointInquiry => :handle_publisher_endpoint_inquiry, Message::Query => :handle_query, Message::StartSaga => :handle_start_saga }
Instance Method Summary collapse
- #bind ⇒ Object
- #handle_message(message) ⇒ Object
-
#initialize(endpoint, publisher_endpoint) ⇒ Server
constructor
A new instance of Server.
- #publish(message) ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize(endpoint, publisher_endpoint) ⇒ Server
Returns a new instance of Server.
16 17 18 19 20 21 22 |
# File 'lib/aggro/server.rb', line 16 def initialize(endpoint, publisher_endpoint) @endpoint = endpoint @publisher_endpoint = publisher_endpoint @transport_server = Aggro.transport.server endpoint, method(RAW_HANDLER) @transport_publisher = Aggro.transport.publisher publisher_endpoint end |
Instance Method Details
#bind ⇒ Object
24 25 26 27 |
# File 'lib/aggro/server.rb', line 24 def bind @transport_server.start @transport_publisher.open_socket end |
#handle_message(message) ⇒ Object
29 30 31 |
# File 'lib/aggro/server.rb', line 29 def () .route end |
#publish(message) ⇒ Object
33 34 35 |
# File 'lib/aggro/server.rb', line 33 def publish() @transport_publisher.publish end |
#stop ⇒ Object
37 38 39 40 |
# File 'lib/aggro/server.rb', line 37 def stop @transport_publisher.close_socket @transport_server.stop end |