Class: Sybase::ColumnData
- Inherits:
-
Object
- Object
- Sybase::ColumnData
- Defined in:
- lib/sybase/structs/column_data.rb
Instance Attribute Summary collapse
-
#format ⇒ Object
readonly
Returns the value of attribute format.
-
#pointer ⇒ Object
readonly
Returns the value of attribute pointer.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
- #char_pointer!(size = 256) ⇒ Object
- #double_pointer! ⇒ Object
- #indicator ⇒ Object
- #indicator_pointer ⇒ Object
-
#initialize ⇒ ColumnData
constructor
A new instance of ColumnData.
- #inspect ⇒ Object
- #int_pointer! ⇒ Object
- #value ⇒ Object
- #valuelen ⇒ Object
- #valuelen_pointer ⇒ Object
Constructor Details
#initialize ⇒ ColumnData
Returns a new instance of ColumnData.
5 6 7 8 9 |
# File 'lib/sybase/structs/column_data.rb', line 5 def initialize @pointer = nil @type = nil @format = DataFormat.new end |
Instance Attribute Details
#format ⇒ Object (readonly)
Returns the value of attribute format.
3 4 5 |
# File 'lib/sybase/structs/column_data.rb', line 3 def format @format end |
#pointer ⇒ Object (readonly)
Returns the value of attribute pointer.
3 4 5 |
# File 'lib/sybase/structs/column_data.rb', line 3 def pointer @pointer end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
3 4 5 |
# File 'lib/sybase/structs/column_data.rb', line 3 def type @type end |
Instance Method Details
#char_pointer!(size = 256) ⇒ Object
15 16 17 18 |
# File 'lib/sybase/structs/column_data.rb', line 15 def char_pointer!(size = 256) @type = :char @pointer = FFI::MemoryPointer.new(@type, size) end |
#double_pointer! ⇒ Object
25 26 27 28 |
# File 'lib/sybase/structs/column_data.rb', line 25 def double_pointer! @type = :double @pointer = FFI::MemoryPointer.new(@type) end |
#indicator ⇒ Object
42 43 44 |
# File 'lib/sybase/structs/column_data.rb', line 42 def indicator indicator_pointer.read_int end |
#indicator_pointer ⇒ Object
34 35 36 |
# File 'lib/sybase/structs/column_data.rb', line 34 def indicator_pointer @indicator_ptr ||= FFI::MemoryPointer.new(:int) end |
#inspect ⇒ Object
11 12 13 |
# File 'lib/sybase/structs/column_data.rb', line 11 def inspect "#<#{self.class}:0x#{(hash*2).to_s(16)} type=#{type.inspect} valuelen=#{valuelen} indicator=#{indicator}>" end |
#int_pointer! ⇒ Object
20 21 22 23 |
# File 'lib/sybase/structs/column_data.rb', line 20 def int_pointer! @type = :int @pointer = FFI::MemoryPointer.new(@type) end |
#value ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/sybase/structs/column_data.rb', line 46 def value case @type when :int @pointer.read_int when :char @pointer.get_bytes(0, valuelen - 1) when :double @pointer.read_double else raise Error, "uknown type #{type}" end end |
#valuelen ⇒ Object
38 39 40 |
# File 'lib/sybase/structs/column_data.rb', line 38 def valuelen valuelen_pointer.read_int end |
#valuelen_pointer ⇒ Object
30 31 32 |
# File 'lib/sybase/structs/column_data.rb', line 30 def valuelen_pointer @valuelen_ptr ||= FFI::MemoryPointer.new(:int) end |