class GemStone::OopType
Public Class Methods
new(value)
click to toggle source
# File lib/gemstone_ruby/base.rb, line 86 def initialize(value) @value = value end
Public Instance Methods
isBoolean()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 90 def isBoolean; return isFalse | isTrue; end
isBytes()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 91 def isBytes; return GemStone.GciFetchObjImpl(@value) === 1; end
isCharacter()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 92 def isCharacter; return @value & 255 === 28; end
isFalse()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 93 def isFalse; return @value === 12; end
isIllegal()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 94 def isIllegal; return @value === 2; end
isImmediate()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 95 def isImmediate; return 0 < @value & 6; end
isNil()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 96 def isNil; return @value === 20; end
isSmallDouble()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 97 def isSmallDouble; return @value & 7 === 6; end
isSmallInteger()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 98 def isSmallInteger; return @value & 7 === 2; end
isString()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 99 def isString; return GemStone.GciFetchClass(@value) === OOP_CLASS_STRING; end
isTrue()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 100 def isTrue; return @value === 268; end
to_f()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 102 def to_f if !isSmallDouble; return nil; end return GemStone.GciOopToFlt(@value) end
to_i()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 107 def to_i if !isSmallInteger; return nil; end return GemStone.GciOopToI64(@value) end
to_s()
click to toggle source
# File lib/gemstone_ruby/base.rb, line 112 def to_s if isNil; return "nil"; end if isTrue; return "true"; end if isFalse; return "false"; end if isSmallDouble; return to_f.to_s; end if isCharacter return GemStone.GciOopToChar32(@value).chr end if isString expectedSize = GemStone.GciFetchSize_(@value) memory = FFI::MemoryPointer.new(expectedSize + 1) actualSize = GemStone.GciFetchChars_(@value, 1, memory, expectedSize + 1) if (expectedSize != actualSize) raise "expected = #{ expectedSize }; actual = #{ actualSize }" end return memory.get_string(0) end return "OOP(#{ @value.to_s })" end