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
Returns the value of attribute value.
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.
231 232 233 234 |
# File 'lib/rinda/rinda.rb', line 231 def initialize @open = true @value = nil end |
Instance Attribute Details
#value ⇒ Object (readonly)
Returns the value of attribute value
217 218 219 |
# File 'lib/rinda/rinda.rb', line 217 def value @value end |
Class Method Details
.deliver ⇒ Object
219 220 221 222 223 224 225 226 227 228 229 |
# File 'lib/rinda/rinda.rb', line 219 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
239 240 241 |
# File 'lib/rinda/rinda.rb', line 239 def close @open = false end |
#push(value) ⇒ Object
Stores value
and ensure it does not get marshaled multiple times.
246 247 248 249 250 251 252 |
# File 'lib/rinda/rinda.rb', line 246 def push value raise 'port closed' unless @open @value = value nil # avoid Marshal end |