Class: Corosync::CPG::Member

Inherits:
Object
  • Object
show all
Defined in:
lib/corosync/cpg/member.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(member) ⇒ Member #initialize(nodeid, pid) ⇒ Member

Returns a new instance of Member.

Overloads:

  • #initialize(member) ⇒ Member

    Parameters:

    • member (FFI::Pointer<Corosync::CpgAddress>, Corosync::CpgAddress)
  • #initialize(nodeid, pid) ⇒ Member

    Parameters:

    • nodeid (Integer)
    • pid (Integer)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/corosync/cpg/member.rb', line 18

def initialize(*args)
	if args.size == 1 then
		member = args.first

		member = Corosync::CpgAddress.new(member) if member.is_a?(FFI::Pointer)
		if member.is_a?(Corosync::CpgAddress) or member.is_a?(Corosync::CpgIterationDescriptionT) then
			@nodeid = member[:nodeid]
			@pid = member[:pid]
		else
			raise ArgumentError, "Invalid argument type"
		end
	elsif args.size == 2 then
		@nodeid = args.shift.to_i
		@pid = args.shift.to_i
	else
		raise ArgumentError, "wrong number of arguments (#{args.size} for 1..2)"
	end
end

Instance Attribute Details

#nodeidInteger (readonly)

Returns Node ID of the member.

Returns:

  • (Integer)

    Node ID of the member



8
9
10
# File 'lib/corosync/cpg/member.rb', line 8

def nodeid
  @nodeid
end

#pidInteger (readonly)

Returns Process ID of the member.

Returns:

  • (Integer)

    Process ID of the member



11
12
13
# File 'lib/corosync/cpg/member.rb', line 11

def pid
  @pid
end

Instance Method Details

#==(target) ⇒ Boolean Also known as: eql?

Returns:

  • (Boolean)


38
39
40
# File 'lib/corosync/cpg/member.rb', line 38

def ==(target)
	self.class == target.class and @nodeid == target.nodeid and @pid == target.pid
end

#hashObject



43
44
45
# File 'lib/corosync/cpg/member.rb', line 43

def hash
	[@nodid,@pid].hash
end

#to_sObject



47
48
49
# File 'lib/corosync/cpg/member.rb', line 47

def to_s
	"#{@nodeid}:#{@pid}"
end