class HrrRbNetconf::Server::Datastore::Session

Public Class Methods

new(database, oper_procs, session_proc, session, logger: nil) click to toggle source
# File lib/hrr_rb_netconf/server/datastore/session.rb, line 13
def initialize database, oper_procs, session_proc, session, logger: nil
  self.logger = logger
  @database = database
  @oper_procs = oper_procs
  @session_proc = session_proc
  @session = session

  if @session_proc
    @oper_handler = OperHandler.new logger: logger
    @oper_thread = Fiber.new do |session|
      @session_proc.call @database, session, @oper_handler
    end
    @oper_thread.resume(session)
  end
end

Public Instance Methods

close() click to toggle source
# File lib/hrr_rb_netconf/server/datastore/session.rb, line 29
def close
  if @oper_thread
    while true
      begin
        @oper_thread.resume
      rescue FiberError
        break
      end
    end
  end
end
run(oper_name, input) click to toggle source
# File lib/hrr_rb_netconf/server/datastore/session.rb, line 41
def run oper_name, input
  unless @oper_procs.has_key? oper_name
    raise Error['operation-not-supported'].new('protocol', 'error', logger: logger)
  end
  if @oper_thread
    @oper_handler.run @oper_procs[oper_name], input
  else
    @oper_procs[oper_name].call @database, input
  end
end