class NTP::Response

Attributes

poll_interval[W]
precision[W]
root_dispersion[W]
version_number[W]

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/ntp.rb, line 206
def initialize
   super(nil, ::Time.now)
end

Public Instance Methods

leap_indicator=(leap_indicator) click to toggle source
# File lib/ntp.rb, line 125
def leap_indicator= leap_indicator
   @leap_indicator_text = leap_indicator
   @leap_indicator = Net::NTP::LEAP_INDICATOR.invert[ leap_indicator ]
end
mode=(mode) click to toggle source
# File lib/ntp.rb, line 130
def mode= mode
   @mode_text ||= mode
   @mode ||= Net::NTP::MODE.invert[ mode ]
end
originate_timestamp=(originate_timestamp) click to toggle source
# File lib/ntp.rb, line 153
def originate_timestamp= originate_timestamp
   @originate_timestamp = NTP::Time.new( originate_timestamp )
end
receive_timestamp=(receive_timestamp) click to toggle source
# File lib/ntp.rb, line 157
def receive_timestamp= receive_timestamp
   @receive_timestamp = NTP::Time.new( receive_timestamp )
end
reference_clock_identifier=(reference_clock_identifier) click to toggle source
# File lib/ntp.rb, line 140
def reference_clock_identifier= reference_clock_identifier
   @reference_clock_identifier =
   NTP::ClockId.new( @stratum, reference_clock_identifier )
end
reference_timestamp=(reference_timestamp) click to toggle source
# File lib/ntp.rb, line 149
def reference_timestamp= reference_timestamp
   @reference_timestamp = NTP::Time.new( reference_timestamp )
end
root_delay=(root_delay) click to toggle source
# File lib/ntp.rb, line 145
def root_delay= root_delay
   @root_delay = NTP::Time.new( root_delay )
end
send() { |"#{data}#{timestamp}"| ... } click to toggle source
# File lib/ntp.rb, line 165
def send &block
   data = self.compile
   yield "#{data[0...40]}#{transmit_timestamp.timestamp}"
end
stratum=(stratum) click to toggle source
# File lib/ntp.rb, line 135
def stratum= stratum
   @stratum_text ||= stratum
   @stratum = Net::NTP::STRATUM.invert[ stratum ]
end
transmit_timestamp=(transmit_timestamp) click to toggle source
# File lib/ntp.rb, line 161
def transmit_timestamp= transmit_timestamp
   @transmit_timestamp = NTP::Time.new( transmit_timestamp )
end

Protected Instance Methods

compile() click to toggle source
# File lib/ntp.rb, line 185
def compile
   data = [
      ( ( @leap_indicator & 0x3 ) << 6 |
        ( @version_number & 0x7 ) << 3 |
        ( @mode & 0x7 ) ),
      @stratum,
      @poll_interval,
      @precision,
      @root_delay.short,
      @root_dispersion.short,
      @reference_clock_identifier.data,
      @reference_timestamp.timestamp,
      @originate_timestamp.timestamp,
      @receive_timestamp.timestamp,
      @transmit_timestamp.timestamp,
   ]
   data.pack( "C4 A4 A4 A4 A8 A8 A8 A8" )
end
raw_data() click to toggle source
# File lib/ntp.rb, line 172
def raw_data
   if ! @raw_data
      @packetdata = []
      NTP_FIELDS.each do |field|
         @packetdata.push( @packet_data_by_field[field] )
      end

      @raw_data = @packetdata.pack( "a C3   n B16 n B16 H8   N B32 N B32   N B32 N B32" )
   end

   @raw_data
end