Class: Rinda::TupleSpaceProxy::Port
- Inherits:
-
Object
- Object
- Rinda::TupleSpaceProxy::Port
- Defined in:
- lib/rinda/rinda.rb
Overview
A Port ensures that a moved tuple arrives properly at its destination and does not get lost.
Instance Attribute Summary collapse
-
#value ⇒ Object
readonly
:nodoc:.
Class Method Summary collapse
Instance Method Summary collapse
-
#close ⇒ Object
Don’t let the DRb thread push to it when remote sends tuple.
-
#initialize ⇒ Port
constructor
A new instance of Port.
-
#push(value) ⇒ Object
Stores
value
and ensure it does not get marshaled multiple times.
Constructor Details
#initialize ⇒ Port
Returns a new instance of Port.
232 233 234 235 |
# File 'lib/rinda/rinda.rb', line 232 def initialize @open = true @value = nil end |
Instance Attribute Details
#value ⇒ Object (readonly)
:nodoc:
218 219 220 |
# File 'lib/rinda/rinda.rb', line 218 def value @value end |
Class Method Details
.deliver ⇒ Object
220 221 222 223 224 225 226 227 228 229 230 |
# File 'lib/rinda/rinda.rb', line 220 def self.deliver port = new begin yield(port) ensure port.close end port.value end |
Instance Method Details
#close ⇒ Object
Don’t let the DRb thread push to it when remote sends tuple
240 241 242 |
# File 'lib/rinda/rinda.rb', line 240 def close @open = false end |
#push(value) ⇒ Object
Stores value
and ensure it does not get marshaled multiple times.
247 248 249 250 251 252 253 |
# File 'lib/rinda/rinda.rb', line 247 def push value raise 'port closed' unless @open @value = value nil # avoid Marshal end |