class IDL::AST::Struct

Constants

DEFINABLE

Attributes

idltype[R]

Public Class Methods

new(_name, _enclosure, params) click to toggle source
Calls superclass method IDL::AST::Node::new
# File lib/ridl/node.rb, line 2512
def initialize(_name, _enclosure, params)
  @defined = false
  @recursive = false
  @forward = params[:forward] ? true : false
  super(_name, _enclosure)
  @idltype = IDL::Type::Struct.new(self)
end

Public Instance Methods

defined=(f) click to toggle source
# File lib/ridl/node.rb, line 2524
def defined=(f)
  @defined = f
end
instantiate(instantiation_context, _enclosure) click to toggle source
Calls superclass method IDL::AST::Leaf#instantiate
# File lib/ridl/node.rb, line 2570
def instantiate(instantiation_context, _enclosure)
  _params = {
    forward: @forward
  }
  _s = super(instantiation_context, _enclosure, _params)
  _s.defined = self.is_defined?
  _s
end
is_defined?() click to toggle source
# File lib/ridl/node.rb, line 2520
def is_defined?
  @defined
end
is_forward?() click to toggle source
# File lib/ridl/node.rb, line 2528
def is_forward?
  @forward
end
is_local?(recurstk = []) click to toggle source
# File lib/ridl/node.rb, line 2548
def is_local?(recurstk = [])
  # not local if forward decl or recursion detected
  return false if is_forward? || recurstk.include?(self)

  recurstk.push self # track root node to detect recursion
  ret = members.any? { |m| m.is_local?(recurstk) }
  recurstk.pop
  ret
end
is_recursive?() click to toggle source
# File lib/ridl/node.rb, line 2532
def is_recursive?
  @recursive
end
marshal_dump() click to toggle source
Calls superclass method IDL::AST::Node#marshal_dump
# File lib/ridl/node.rb, line 2558
def marshal_dump
  super() << @idltype << @defined << @recursive << @forward
end
marshal_load(vars) click to toggle source
Calls superclass method IDL::AST::Node#marshal_load
# File lib/ridl/node.rb, line 2562
def marshal_load(vars)
  @forward = vars.pop
  @recursive = vars.pop
  @defined = vars.pop
  @idltype = vars.pop
  super(vars)
end
members() click to toggle source
# File lib/ridl/node.rb, line 2544
def members
  @children.find_all { |c| c.is_a? IDL::AST::Member }
end
recursive=(f) click to toggle source
# File lib/ridl/node.rb, line 2536
def recursive=(f)
  @recursive = f
end
walk_members() { |m| ... } click to toggle source
# File lib/ridl/node.rb, line 2540
def walk_members
  @children.each { |m| yield(m) unless m.is_a? IDL::AST::Member }
end

Protected Instance Methods

walk_members_for_copy() { |c| ... } click to toggle source
# File lib/ridl/node.rb, line 2581
def walk_members_for_copy
  @children.each { |c| yield(c) }
end