Class: Takagi::Network::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/takagi/network/base.rb

Overview

Base class for all transport implementations. Each transport encapsulates protocol-specific framing, I/O, and metadata.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.additional_schemesArray<String>

Additional schemes this transport supports (e.g., [‘coaps’] for secure variant)

Returns:

  • (Array<String>)


35
36
37
# File 'lib/takagi/network/base.rb', line 35

def additional_schemes
  []
end

.default_portInteger

Default port for this transport

Returns:

  • (Integer)

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/takagi/network/base.rb', line 17

def default_port
  raise NotImplementedError, "#{self} must implement .default_port"
end

.reliable?Boolean

Is this a reliable transport?

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


29
30
31
# File 'lib/takagi/network/base.rb', line 29

def reliable?
  raise NotImplementedError, "#{self} must implement .reliable?"
end

.rfcString

RFC reference for this transport

Returns:

  • (String)

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/takagi/network/base.rb', line 23

def rfc
  raise NotImplementedError, "#{self} must implement .rfc"
end

.schemeString

URI scheme for this transport (e.g., ‘coap’, ‘coap+tcp’)

Returns:

  • (String)

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/takagi/network/base.rb', line 11

def scheme
  raise NotImplementedError, "#{self} must implement .scheme"
end

Instance Method Details

#create_client(options = {}) ⇒ Object

Create a client for this transport

Parameters:

  • options (Hash) (defaults to: {})

    Client options

Returns:

  • (Object)

    Client instance

Raises:

  • (NotImplementedError)


71
72
73
# File 'lib/takagi/network/base.rb', line 71

def create_client(options = {})
  raise NotImplementedError, "#{self.class} must implement #create_client"
end

#create_sender(options = {}) ⇒ Object

Create a sender for this transport

Parameters:

  • options (Hash) (defaults to: {})

    Transport-specific options

Returns:

  • (Object)

    Sender instance

Raises:

  • (NotImplementedError)


57
58
59
# File 'lib/takagi/network/base.rb', line 57

def create_sender(options = {})
  raise NotImplementedError, "#{self.class} must implement #create_sender"
end

#create_server(options = {}) ⇒ Object

Create a server for this transport

Parameters:

  • options (Hash) (defaults to: {})

    Server options

Returns:

  • (Object)

    Server instance

Raises:

  • (NotImplementedError)


64
65
66
# File 'lib/takagi/network/base.rb', line 64

def create_server(options = {})
  raise NotImplementedError, "#{self.class} must implement #create_server"
end

#decode(data) ⇒ Message::Inbound

Decode binary data into a CoAP message

Parameters:

  • data (String)

    Binary data from the wire

Returns:

Raises:

  • (NotImplementedError)


50
51
52
# File 'lib/takagi/network/base.rb', line 50

def decode(data)
  raise NotImplementedError, "#{self.class} must implement #decode"
end

#encode(message) ⇒ String

Encode a CoAP message for this transport

Parameters:

Returns:

  • (String)

    Binary data ready for transmission

Raises:

  • (NotImplementedError)


43
44
45
# File 'lib/takagi/network/base.rb', line 43

def encode(message)
  raise NotImplementedError, "#{self.class} must implement #encode"
end