# encoding: utf-8 module OneApm module Agent class Sampler attr_reader :id @sampler_classes = [] class << self def named(new_name) @name = new_name end def name @name end def inherited(subclass) @sampler_classes << subclass end def supported_on_this_platform? true end def enabled? if @name config_key = "disable_#{@name}_sampler" !(Agent.config[config_key]) else true end end def sampler_classes @sampler_classes end end def initialize(id = nil) @id = id || self.class.name end def poll raise "Implement in the subclass" end class Unsupported < StandardError; end end end end