Module: NNG

Defined in:
lib/nng.rb,
lib/nng/ffi.rb,
lib/nng/errors.rb,
lib/nng/socket.rb,
lib/nng/message.rb,
lib/nng/version.rb,
lib/nng/protocols.rb

Overview

NNG (nanomsg-next-generation) Ruby bindings

Examples:

Basic usage

require 'nng'

# Create a pair socket
socket = NNG::Socket.new(:pair1)
socket.listen("tcp://127.0.0.1:5555")

# Send a message
socket.send("Hello, NNG!")

# Receive a message
data = socket.recv
puts data

# Close the socket
socket.close

Defined Under Namespace

Modules: FFI, Protocols Classes: AddressInUse, Closed, ConnectionAborted, ConnectionError, ConnectionRefused, ConnectionReset, Error, Message, MessageSize, NoMemory, ProtocolError, ResourceError, Socket, StateError, TimeoutError

Constant Summary collapse

ERROR_MAP =

Map error codes to exception classes

{
  FFI::NNG_ETIMEDOUT    => TimeoutError,
  FFI::NNG_ECONNREFUSED => ConnectionRefused,
  FFI::NNG_ECONNABORTED => ConnectionAborted,
  FFI::NNG_ECONNRESET   => ConnectionReset,
  FFI::NNG_ECLOSED      => Closed,
  FFI::NNG_EADDRINUSE   => AddressInUse,
  FFI::NNG_ENOMEM       => NoMemory,
  FFI::NNG_EMSGSIZE     => MessageSize,
  FFI::NNG_EPROTO       => ProtocolError,
  FFI::NNG_ESTATE       => StateError
}.freeze
VERSION =
'1.0.1'

Class Method Summary collapse

Class Method Details

.finiObject

Cleanup NNG library (optional, called automatically at exit)



45
46
47
# File 'lib/nng.rb', line 45

def self.fini
  FFI.nng_fini
end

.lib_versionString

NNG library version (from C library)

Returns:

  • (String)

    version string from libnng runtime



40
41
42
# File 'lib/nng.rb', line 40

def self.lib_version
  FFI.nng_version
end

.raise_error(code, message) ⇒ Object

Raise appropriate exception for error code

Raises:

  • (error_class)


44
45
46
47
# File 'lib/nng/errors.rb', line 44

def self.raise_error(code, message)
  error_class = ERROR_MAP[code] || Error
  raise error_class, message
end

.versionString

NNG library version

Returns:

  • (String)

    version string



34
35
36
# File 'lib/nng.rb', line 34

def self.version
  VERSION
end