Class: Sumac

Inherits:
Object show all
Includes:
Emittable
Defined in:
lib/sumac.rb,
lib/sumac/closer.rb,
lib/sumac/adapter.rb,
lib/sumac/message.rb,
lib/sumac/forgoten.rb,
lib/sumac/shutdown.rb,
lib/sumac/handshake.rb,
lib/sumac/messenger.rb,
lib/sumac/reference.rb,
lib/sumac/scheduler.rb,
lib/sumac/connection.rb,
lib/sumac/worker_pool.rb,
lib/sumac/closed_error.rb,
lib/sumac/id_allocator.rb,
lib/sumac/native_error.rb,
lib/sumac/remote_entry.rb,
lib/sumac/message_error.rb,
lib/sumac/remote_object.rb,
lib/sumac/adapter/closed.rb,
lib/sumac/argument_error.rb,
lib/sumac/call_processor.rb,
lib/sumac/exposed_object.rb,
lib/sumac/message/object.rb,
lib/sumac/call_dispatcher.rb,
lib/sumac/local_reference.rb,
lib/sumac/no_method_error.rb,
lib/sumac/local_references.rb,
lib/sumac/message/exchange.rb,
lib/sumac/remote_reference.rb,
lib/sumac/remote_references.rb,
lib/sumac/stale_object_error.rb,
lib/sumac/message/exchange/id.rb,
lib/sumac/message/object/base.rb,
lib/sumac/message/object/null.rb,
lib/sumac/remote_object_child.rb,
lib/sumac/exposed_object_child.rb,
lib/sumac/message/object/array.rb,
lib/sumac/message/object/float.rb,
lib/sumac/message/exchange/base.rb,
lib/sumac/message/object/string.rb,
lib/sumac/message/object/boolean.rb,
lib/sumac/message/object/exposed.rb,
lib/sumac/message/object/integer.rb,
lib/sumac/message/object/exception.rb,
lib/sumac/unexposable_object_error.rb,
lib/sumac/message/object/hash_table.rb,
lib/sumac/message/object/exposed_child.rb,
lib/sumac/message/exchange/call_request.rb,
lib/sumac/message/exchange/notification.rb,
lib/sumac/message/exchange/call_response.rb,
lib/sumac/message/object/native_exception.rb,
lib/sumac/message/exchange/forget_notification.rb,
lib/sumac/message/exchange/shutdown_notification.rb,
lib/sumac/message/exchange/compatibility_notification.rb,
lib/sumac/message/exchange/initialization_notification.rb

Defined Under Namespace

Modules: Adapter, ExposedObject, ExposedObjectChild Classes: ArgumentError, CallDispatcher, CallProcessor, ClosedError, Closer, Connection, Forgoten, Handshake, IDAllocator, LocalReference, LocalReferences, Message, MessageError, Messenger, NativeError, NoMethodError, Reference, RemoteEntry, RemoteObject, RemoteObjectChild, RemoteReference, RemoteReferences, Scheduler, Shutdown, StaleObjectError, UnexposableObjectError, WorkerPool

Instance Method Summary collapse

Constructor Details

#initialize(duck_types: {}, entry: nil, messenger:, workers: 1) ⇒ Sumac

Returns a new instance of Sumac.



69
70
71
72
# File 'lib/sumac.rb', line 69

def initialize(duck_types: {}, entry: nil, messenger: , workers: 1)
  @connection = Connection.new(self, duck_types: duck_types, entry: entry, messenger: messenger, workers: workers)
  @connection.scheduler.run
end

Instance Method Details

#closeObject



74
75
76
77
# File 'lib/sumac.rb', line 74

def close
  @connection.closer.close
  nil
end

#entryObject



79
80
81
# File 'lib/sumac.rb', line 79

def entry
  @connection.remote_entry.get
end

#joinObject



83
84
85
# File 'lib/sumac.rb', line 83

def join
  @connection.closer.join
end