Sha256: 26f4a0ec2a3320575849b0b2019e2f273b800cd989f1e2ab24d2679bcd81e288

Contents?: true

Size: 1.31 KB

Versions: 89

Compression:

Stored size: 1.31 KB

Contents

require 'active_support/concern'
module Origen
  module Callbacks
    extend ActiveSupport::Concern

    included do
      include Origen::ModelInitializer
    end

    def register_callback_listener # :nodoc:
      Origen.app.add_callback_listener(self)
      # If this object has been instantiated after on_create has already been called,
      # then invoke it now
      if Origen.app.on_create_called?
        on_create if respond_to?(:on_create)
      end
    end
  end

  # The regular callbacks module will register listeners that expire upon the next target
  # load, normally this is what is wanted at app level since things should start afresh
  # every time the target is loaded.
  #
  # However within Origen core (and possibly some plugins) it is often the case that registered
  # listeners will be objects that are not re-instantiated upon target load and persist for
  # the entire Origen thread. In this case use the PersistentCallbacks module instead of the regular
  # Callbacks module to make these objects register as permanent listeners.
  module PersistentCallbacks
    extend ActiveSupport::Concern

    included do
      include Origen::ModelInitializer
    end

    def register_callback_listener # :nodoc:
      Origen.app.add_persistant_callback_listener(self)
    end
  end
  CoreCallbacks = PersistentCallbacks
end

Version data entries

89 entries across 89 versions & 1 rubygems

Version Path
origen-0.60.19 lib/origen/callbacks.rb
origen-0.60.18 lib/origen/callbacks.rb
origen-0.60.17 lib/origen/callbacks.rb
origen-0.60.16 lib/origen/callbacks.rb
origen-0.60.14 lib/origen/callbacks.rb
origen-0.60.13 lib/origen/callbacks.rb
origen-0.60.12 lib/origen/callbacks.rb
origen-0.60.11 lib/origen/callbacks.rb
origen-0.60.10 lib/origen/callbacks.rb
origen-0.60.9 lib/origen/callbacks.rb
origen-0.60.8 lib/origen/callbacks.rb
origen-0.60.7 lib/origen/callbacks.rb
origen-0.60.6 lib/origen/callbacks.rb
origen-0.60.5 lib/origen/callbacks.rb
origen-0.60.4 lib/origen/callbacks.rb
origen-0.60.3 lib/origen/callbacks.rb
origen-0.60.2 lib/origen/callbacks.rb
origen-0.60.1 lib/origen/callbacks.rb
origen-0.60.0 lib/origen/callbacks.rb
origen-0.59.8 lib/origen/callbacks.rb