Class: Rinda::TupleSpaceProxy::Port
- Inherits:
-
Object
- Object
- Rinda::TupleSpaceProxy::Port
- Defined in:
- lib/rinda2/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
valueand ensure it does not get marshaled multiple times.
Constructor Details
#initialize ⇒ Port
Returns a new instance of Port.
195 196 197 198 |
# File 'lib/rinda2/rinda.rb', line 195 def initialize @open = true @value = nil end |
Instance Attribute Details
#value ⇒ Object (readonly)
:nodoc:
181 182 183 |
# File 'lib/rinda2/rinda.rb', line 181 def value @value end |
Class Method Details
.deliver ⇒ Object
183 184 185 186 187 188 189 190 191 192 193 |
# File 'lib/rinda2/rinda.rb', line 183 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
203 204 205 |
# File 'lib/rinda2/rinda.rb', line 203 def close @open = false end |
#push(value) ⇒ Object
Stores value and ensure it does not get marshaled multiple times.
210 211 212 213 214 215 216 |
# File 'lib/rinda2/rinda.rb', line 210 def push value raise 'port closed' unless @open @value = value nil # avoid Marshal end |