Class: NFS::SUNRPC::Version
- Inherits:
-
Object
- Object
- NFS::SUNRPC::Version
- Defined in:
- lib/nfs/sunrpc/version.rb
Instance Attribute Summary collapse
-
#number ⇒ Object
readonly
Returns the value of attribute number.
Instance Method Summary collapse
- #add_procedure(name, number, newproc) ⇒ Object
- #call(p, arg, cred, verf) ⇒ Object
- #dup ⇒ Object
- #get_procedure(procedure_name) ⇒ Object
-
#initialize(number, &block) ⇒ Version
constructor
A new instance of Version.
- #on_call(procedure_name, &block) ⇒ Object
-
#procedure(returntype, name, number, argtype, &block) ⇒ Object
The name is required, but just for documentation.
Constructor Details
#initialize(number, &block) ⇒ Version
Returns a new instance of Version.
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/nfs/sunrpc/version.rb', line 6 def initialize(number, &block) @number = number @procedures = {} @procedure_names = {} # Add the customary null procedure by default. procedure XDR::Void.new, :NULL, 0, XDR::Void.new do # do nothing end instance_eval(&block) if block_given? end |
Instance Attribute Details
#number ⇒ Object (readonly)
Returns the value of attribute number.
4 5 6 |
# File 'lib/nfs/sunrpc/version.rb', line 4 def number @number end |
Instance Method Details
#add_procedure(name, number, newproc) ⇒ Object
27 28 29 30 |
# File 'lib/nfs/sunrpc/version.rb', line 27 def add_procedure(name, number, newproc) @procedures[number] = newproc @procedure_names[name] = newproc end |
#call(p, arg, cred, verf) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/nfs/sunrpc/version.rb', line 46 def call(p, arg, cred, verf) unless @procedures.include?(p) raise ProcedureUnavailable end @procedures[p].call(arg, cred, verf) end |
#dup ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/nfs/sunrpc/version.rb', line 19 def dup Version.new(@number).tap do |v| @procedure_names.each_pair do |name, procedure| v.add_procedure(name, procedure.number, procedure.dup) end end end |
#get_procedure(procedure_name) ⇒ Object
38 39 40 |
# File 'lib/nfs/sunrpc/version.rb', line 38 def get_procedure(procedure_name) @procedure_names[procedure_name] end |
#on_call(procedure_name, &block) ⇒ Object
42 43 44 |
# File 'lib/nfs/sunrpc/version.rb', line 42 def on_call(procedure_name, &block) @procedure_names[procedure_name].on_call(&block) end |
#procedure(returntype, name, number, argtype, &block) ⇒ Object
The name is required, but just for documentation.
33 34 35 36 |
# File 'lib/nfs/sunrpc/version.rb', line 33 def procedure(returntype, name, number, argtype, &block) newproc = Procedure.new(number, returntype, argtype, &block) add_procedure(name, number, newproc) end |