Class: PatronusFati::DataModels::Connection
- Inherits:
-
Object
- Object
- PatronusFati::DataModels::Connection
- Includes:
- CommonState
- Defined in:
- lib/patronus_fati/data_models/connection.rb
Instance Attribute Summary collapse
-
#bssid ⇒ void
Returns the value of attribute bssid.
-
#link_lost ⇒ void
Returns the value of attribute link_lost.
-
#mac ⇒ void
Returns the value of attribute mac.
Class Method Summary collapse
Instance Method Summary collapse
- #active? ⇒ Boolean
- #announce_changes ⇒ void
- #full_state ⇒ void
-
#initialize(bssid, mac) ⇒ Connection
constructor
A new instance of Connection.
Methods included from CommonState
#data_dirty?, #diagnostic_data, #dirty?, included, #mark_synced, #new?, #set_sync_flag, #status_dirty?, #sync_flag?
Constructor Details
#initialize(bssid, mac) ⇒ Connection
Returns a new instance of Connection.
39 40 41 42 43 44 |
# File 'lib/patronus_fati/data_models/connection.rb', line 39 def initialize(bssid, mac) super self.bssid = bssid self.link_lost = false self.mac = mac end |
Instance Attribute Details
#bssid ⇒ void
Returns the value of attribute bssid.
6 7 8 |
# File 'lib/patronus_fati/data_models/connection.rb', line 6 def bssid @bssid end |
#link_lost ⇒ void
Returns the value of attribute link_lost.
6 7 8 |
# File 'lib/patronus_fati/data_models/connection.rb', line 6 def link_lost @link_lost end |
#mac ⇒ void
Returns the value of attribute mac.
6 7 8 |
# File 'lib/patronus_fati/data_models/connection.rb', line 6 def mac @mac end |
Class Method Details
.[](key) ⇒ void
8 9 10 11 |
# File 'lib/patronus_fati/data_models/connection.rb', line 8 def self.[](key) bssid, mac = key.split('^') instances[key] ||= new(bssid, mac) end |
.current_expiration_threshold ⇒ void
13 14 15 |
# File 'lib/patronus_fati/data_models/connection.rb', line 13 def self.current_expiration_threshold Time.now.to_i - CONNECTION_EXPIRATION end |
Instance Method Details
#active? ⇒ Boolean
35 36 37 |
# File 'lib/patronus_fati/data_models/connection.rb', line 35 def active? super && !link_lost end |
#announce_changes ⇒ void
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/patronus_fati/data_models/connection.rb', line 17 def announce_changes return unless dirty? && DataModels::AccessPoint[bssid].valid? && DataModels::Client[mac].valid? state = active? ? :connect : :disconnect PatronusFati.event_handler.event(:connection, state, full_state, diagnostic_data) # We need to reset the first seen so we get fresh duration information presence.first_seen = nil unless active? DataModels::AccessPoint[bssid].remove_client(mac) DataModels::Client[mac].remove_access_point(bssid) end mark_synced end |
#full_state ⇒ void
46 47 48 49 50 |
# File 'lib/patronus_fati/data_models/connection.rb', line 46 def full_state data = { 'access_point' => bssid, 'client' => mac, 'connected' => active?} data['duration'] = presence.visible_time if !active? && presence.visible_time data end |