Class: OpenC3::Topic

Inherits:
Object show all
Defined in:
lib/openc3/topics/topic.rb

Class Method Summary collapse

Class Method Details

.clear_topics(topics, maxlen = 0) ⇒ Object



36
37
38
# File 'lib/openc3/topics/topic.rb', line 36

def self.clear_topics(topics, maxlen = 0)
  topics.each { |topic| EphemeralStore.xtrim(topic, maxlen) }
end

.get_cnt(topic) ⇒ Object



48
49
50
51
# File 'lib/openc3/topics/topic.rb', line 48

def self.get_cnt(topic)
  _, packet = EphemeralStore.get_newest_message(topic)
  packet ? packet["received_count"].to_i : 0
end

.method_missing(message, *args, **kwargs, &block) ⇒ Object

Delegate all unknown class methods to delegate to the EphemeralStore



26
27
28
# File 'lib/openc3/topics/topic.rb', line 26

def self.method_missing(message, *args, &block)
  EphemeralStore.public_send(message, *args, &block)
end

.topics(scope, key) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/openc3/topics/topic.rb', line 40

def self.topics(scope, key)
  EphemeralStore
    .scan_each(match: "#{scope}__#{key}__*", type: 'stream', count: 100)
    .to_a # Change the enumerator into an array
    .uniq # Scan can return duplicates so ensure unique
    .sort # Sort not entirely necessary but nice
end