class HrrRbNetconf::Server::Capability::Base_1_0::Sender
Public Class Methods
new(io_w, logger: nil)
click to toggle source
# File lib/hrr_rb_netconf/server/capability/base_1_0.rb, line 101 def initialize io_w, logger: nil self.logger = logger @io_w = io_w @formatter = REXML::Formatters::Pretty.new(2) @formatter.compact = true end
Public Instance Methods
send_message(msg)
click to toggle source
# File lib/hrr_rb_netconf/server/capability/base_1_0.rb, line 108 def send_message msg buf = String.new case msg when String begin @formatter.write(REXML::Document.new(msg, {:ignore_whitespace_nodes => :all}).root, buf) rescue => e log_error { "Invalid sending message: #{msg.inspect}: #{e.message}" } raise "Invalid sending message: #{msg.inspect}: #{e.message}" end when REXML::Document @formatter.write(msg.root, buf) when REXML::Element @formatter.write(msg, buf) else log_error { "Unexpected sending message: #{msg.inspect}" } raise ArgumentError, "Unexpected sending message: #{msg.inspect}" end log_debug { "Sending message: #{buf.inspect}" } begin @io_w.write "#{buf}\n]]>]]>" rescue => e log_info { "Sender IO closed: #{e.class}: #{e.message}" } raise IOError, "Sender IO closed: #{e.class}: #{e.message}" end end