Class: AMQ::Protocol::Class

Inherits:
Object
  • Object
show all
Defined in:
lib/amq/protocol/client.rb

Overview

We don“t instantiate the following classes, as we don”t actually need any per-instance state. Also, this is pretty low-level functionality, hence it should have a reasonable performance. As everyone knows, garbage collector in MRI performs really badly, which is another good reason for not creating any objects, but only use class as a struct. Creating classes is quite expensive though, but here the inheritance comes handy and mainly as we can“t simply make a reference to a function, we can”t use a hash or an object. I“ve been also considering to have just a bunch of methods, but here”s the problem, that after we“d require this file, all these methods would become global which would be a bad, bad thing to do.

Direct Known Subclasses

Basic, Channel, Confirm, Connection, Exchange, Queue, Tx

Class Method Summary collapse

Class Method Details

.classesObject



203
204
205
# File 'lib/amq/protocol/client.rb', line 203

def self.classes
  @classes
end

.inherited(base) ⇒ Object



197
198
199
200
201
# File 'lib/amq/protocol/client.rb', line 197

def self.inherited(base)
  if self == Protocol::Class
    @classes << base
  end
end

.method_idObject



189
190
191
# File 'lib/amq/protocol/client.rb', line 189

def self.method_id
  @method_id
end

.nameObject



193
194
195
# File 'lib/amq/protocol/client.rb', line 193

def self.name
  @name
end