module GxG::Communications

Constants

BRIDGE_THREAD_SAFETY

Public Class Methods

bridge(the_uuid) click to toggle source
# File lib/gxg/gxg_communications.rb, line 7
def self.bridge(the_uuid)
    if ::GxG::valid_uuid?(the_uuid)
        BRIDGE_THREAD_SAFETY.synchronize { ::GxG::BRIDGES[(the_uuid)] }
    else
        nil
    end
end
close_bridge(the_uuid=nil) click to toggle source
# File lib/gxg/gxg_communications.rb, line 21
def self.close_bridge(the_uuid=nil)
    if ::GxG::valid_uuid?(the_uuid)
        the_bridge = BRIDGE_THREAD_SAFETY.synchronize { ::GxG::BRIDGES.delete(the_uuid) }
        if the_bridge
            the_bridge.close
            timeout = ::Chronic::parse("30 seconds from now").to_f
            while the_bridge.open? do
                sleep 1.0
                if Time.now.to_f >= timeout
                    break
                end
            end
        end
        true
    else
        false
    end
end
open_bridge(process=nil, the_url=nil, options=nil) click to toggle source
# File lib/gxg/gxg_communications.rb, line 15
def self.open_bridge(process=nil, the_url=nil, options=nil)
    new_bridge = ::GxG::Communications::Bridge.new(process, the_url, options)
    BRIDGE_THREAD_SAFETY.synchronize { ::GxG::BRIDGES[(new_bridge.uuid)] = new_bridge }
    new_bridge.uuid
end