Class: Vertx::Counter
- Inherits:
-
Object
- Object
- Vertx::Counter
- Defined in:
- /Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb
Overview
An asynchronous counter that can be used to across the cluster to maintain a consistent count.
Constant Summary
- @@j_api_type =
Object.new
Class Method Summary (collapse)
- + (Boolean) accept?(obj)
- + (Object) j_api_type
- + (Object) j_class
- + (Object) unwrap(obj)
- + (Object) wrap(obj)
Instance Method Summary (collapse)
-
- (void) add_and_get(value = nil) { ... }
Add the value to the counter atomically and return the new count.
-
- (void) compare_and_set(expected = nil, value = nil) { ... }
Set the counter to the specified value only if the current value is the expectec value.
-
- (void) decrement_and_get { ... }
Decrement the counter atomically and return the new count.
-
- (void) get { ... }
Get the current value of the counter.
-
- (void) get_and_add(value = nil) { ... }
Add the value to the counter atomically and return the value before the add.
-
- (void) get_and_increment { ... }
Increment the counter atomically and return the value before the increment.
-
- (void) increment_and_get { ... }
Increment the counter atomically and return the new count.
Class Method Details
+ (Boolean) accept?(obj)
18 19 20 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 18 def @@j_api_type.accept?(obj) obj.class == Counter end |
+ (Object) j_api_type
27 28 29 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 27 def self.j_api_type @@j_api_type end |
+ (Object) j_class
30 31 32 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 30 def self.j_class Java::IoVertxCoreShareddata::Counter.java_class end |
+ (Object) unwrap(obj)
24 25 26 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 24 def @@j_api_type.unwrap(obj) obj.j_del end |
+ (Object) wrap(obj)
21 22 23 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 21 def @@j_api_type.wrap(obj) Counter.new(obj) end |
Instance Method Details
- (void) add_and_get(value = nil) { ... }
This method returns an undefined value.
Add the value to the counter atomically and return the new count
73 74 75 76 77 78 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 73 def add_and_get(value=nil) if value.class == Fixnum && block_given? return @j_del.java_method(:addAndGet, [Java::long.java_class,Java::IoVertxCore::Handler.java_class]).call(value,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ar.result : nil) })) end raise ArgumentError, "Invalid arguments when calling add_and_get(#{value})" end |
- (void) compare_and_set(expected = nil, value = nil) { ... }
This method returns an undefined value.
Set the counter to the specified value only if the current value is the expectec value. This happens atomically.
95 96 97 98 99 100 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 95 def compare_and_set(expected=nil,value=nil) if expected.class == Fixnum && value.class == Fixnum && block_given? return @j_del.java_method(:compareAndSet, [Java::long.java_class,Java::long.java_class,Java::IoVertxCore::Handler.java_class]).call(expected,value,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ar.result : nil) })) end raise ArgumentError, "Invalid arguments when calling compare_and_set(#{expected},#{value})" end |
- (void) decrement_and_get { ... }
This method returns an undefined value.
Decrement the counter atomically and return the new count
63 64 65 66 67 68 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 63 def decrement_and_get if block_given? return @j_del.java_method(:decrementAndGet, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ar.result : nil) })) end raise ArgumentError, "Invalid arguments when calling decrement_and_get()" end |
- (void) get { ... }
This method returns an undefined value.
Get the current value of the counter
36 37 38 39 40 41 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 36 def get if block_given? return @j_del.java_method(:get, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ar.result : nil) })) end raise ArgumentError, "Invalid arguments when calling get()" end |
- (void) get_and_add(value = nil) { ... }
This method returns an undefined value.
Add the value to the counter atomically and return the value before the add
83 84 85 86 87 88 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 83 def get_and_add(value=nil) if value.class == Fixnum && block_given? return @j_del.java_method(:getAndAdd, [Java::long.java_class,Java::IoVertxCore::Handler.java_class]).call(value,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ar.result : nil) })) end raise ArgumentError, "Invalid arguments when calling get_and_add(#{value})" end |
- (void) get_and_increment { ... }
This method returns an undefined value.
Increment the counter atomically and return the value before the increment.
54 55 56 57 58 59 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 54 def get_and_increment if block_given? return @j_del.java_method(:getAndIncrement, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ar.result : nil) })) end raise ArgumentError, "Invalid arguments when calling get_and_increment()" end |
- (void) increment_and_get { ... }
This method returns an undefined value.
Increment the counter atomically and return the new count
45 46 47 48 49 50 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/counter.rb', line 45 def increment_and_get if block_given? return @j_del.java_method(:incrementAndGet, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ar.result : nil) })) end raise ArgumentError, "Invalid arguments when calling increment_and_get()" end |