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