Sha256: 3d285d9a101396be0478c8ab5582b7bbc4f7ea15be76d76ce0a69ee0b0fc5cd1

Contents?: true

Size: 1.95 KB

Versions: 34

Compression:

Stored size: 1.95 KB

Contents

# encoding: ascii-8bit

# Copyright 2023 OpenC3, Inc.
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
# under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation; version 3 with
# attribution addendums as found in the LICENSE.txt
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# This file may also be used under the terms of a commercial license
# if purchased from OpenC3, Inc.

require 'openc3/logs/stream_log'

module OpenC3
  # Holds a read/write pair of stream logs
  class StreamLogPair
    # @return [StreamLog] The read log
    attr_accessor :read_log
    # @return [StreamLog] The write log
    attr_accessor :write_log

    # @param name [String] name to be added to log filenames
    # @param params [Array] stream log writer parameters or empty array
    def initialize(name, params = [])
      @read_log = StreamLog.new(name, :READ, *params)
      @write_log = StreamLog.new(name, :WRITE, *params)
    end

    # Change the stream log name
    # @param name [String] new name
    def name=(name)
      @read_log.name = name
      @write_log.name = name
    end

    # Start stream logs
    def start
      @read_log.start
      @write_log.start
    end

    # Close any open stream log files
    def stop
      @read_log.stop
      @write_log.stop
    end

    def shutdown
      @read_log.shutdown
      @write_log.shutdown
    end

    # Clone the stream log pair
    def clone
      stream_log_pair = super()
      stream_log_pair.read_log = @read_log.clone
      stream_log_pair.write_log = @write_log.clone
      stream_log_pair.read_log.start if @read_log.logging_enabled
      stream_log_pair.write_log.start if @write_log.logging_enabled
      stream_log_pair
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
openc3-6.2.1 lib/openc3/logs/stream_log_pair.rb
openc3-6.2.0 lib/openc3/logs/stream_log_pair.rb
openc3-6.1.0 lib/openc3/logs/stream_log_pair.rb
openc3-6.0.2 lib/openc3/logs/stream_log_pair.rb
openc3-6.0.1 lib/openc3/logs/stream_log_pair.rb
openc3-6.0.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.20.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.19.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.18.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.17.1 lib/openc3/logs/stream_log_pair.rb
openc3-5.17.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.16.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.15.2 lib/openc3/logs/stream_log_pair.rb
openc3-5.15.1 lib/openc3/logs/stream_log_pair.rb
openc3-5.15.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.14.2 lib/openc3/logs/stream_log_pair.rb
openc3-5.14.1 lib/openc3/logs/stream_log_pair.rb
openc3-5.14.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.13.0 lib/openc3/logs/stream_log_pair.rb
openc3-5.12.0 lib/openc3/logs/stream_log_pair.rb