class UV::ScheduledEvent

Attributes

created[R]
last_scheduled[R]
next_scheduled[R]
trigger_count[R]

Public Class Methods

new(scheduler) click to toggle source
Calls superclass method
# File lib/uv-rays/scheduler.rb, line 20
def initialize(scheduler)
    # Create a dummy deferrable
    reactor = scheduler.reactor
    defer = reactor.defer

    # Record a backtrace of where the schedule was created
    @trace = caller

    # Setup common event variables
    @scheduler = scheduler
    @created = reactor.now
    @last_scheduled = @created
    @trigger_count = 0

    # init the promise
    super(reactor, defer)
end

Public Instance Methods

<=>(anOther) click to toggle source

required for comparable

# File lib/uv-rays/scheduler.rb, line 57
def <=>(anOther)
    @next_scheduled <=> anOther.next_scheduled
end
cancel() click to toggle source

reject the promise

# File lib/uv-rays/scheduler.rb, line 62
def cancel
    @defer.reject(:cancelled)
end
inspect() click to toggle source

Provide relevant inspect information

# File lib/uv-rays/scheduler.rb, line 39
def inspect
    insp = String.new("#<#{self.class}:#{"0x00%x" % (self.__id__ << 1)} ")
    insp << "trigger_count=#{@trigger_count} "
    insp << "config=#{info} " if self.respond_to?(:info, true)
    insp << "next_scheduled=#{to_time(@next_scheduled)} "
    insp << "last_scheduled=#{to_time(@last_scheduled)} created=#{to_time(@created)}>"
    insp
end
Also aliased as: to_s
to_s()
Alias for: inspect
to_time(internal_time) click to toggle source
# File lib/uv-rays/scheduler.rb, line 49
def to_time(internal_time)
    if internal_time
        ((internal_time + @scheduler.time_diff) / 1000).to_i
    end
end
trigger() click to toggle source

notify listeners of the event

# File lib/uv-rays/scheduler.rb, line 67
def trigger
    @trigger_count += 1
    @defer.notify(@reactor.now, self)
end