Method: Corosync::CPG#members
- Defined in:
- lib/corosync/cpg.rb
#members ⇒ Corosync::CPG::MemberList
Gets a list of members currently in the group
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 |
# File 'lib/corosync/cpg.rb', line 227 def members members = Corosync::CPG::MemberList.new cpg_name = Corosync::CpgName.new cpg_name[:value] = @group cpg_name[:length] = @group.size iteration_handle_ptr = FFI::MemoryPointer.new(Corosync.find_type(:cpg_iteration_handle_t)) Corosync.cs_send(:cpg_iteration_initialize, @handle, Corosync::CPG_ITERATION_ONE_GROUP, cpg_name, iteration_handle_ptr) iteration_handle = iteration_handle_ptr.read_uint64 begin iteration_description = Corosync::CpgIterationDescriptionT.new begin loop do Corosync.cs_send(:cpg_iteration_next, iteration_handle, iteration_description) members << Corosync::CPG::Member.new(iteration_description) end rescue Corosync::NoSectionsError # signals end of iteration end ensure Corosync.cs_send(:cpg_iteration_finalize, iteration_handle) end members end |