class Hakuban::ObjectObserveState

Attributes

data[R]
data_type[R]
data_version[R]
synchronized[R]

Public Class Methods

finalize(raw_state) click to toggle source
# File lib/hakuban/hakuban.rb, line 370
def ObjectObserveState.finalize(raw_state)
        proc { |_|
                FFI::hakuban_object_observe_state_return(raw_state)
        }
end
new(raw_state, deserializer) click to toggle source
# File lib/hakuban/hakuban.rb, line 361
def initialize(raw_state, deserializer)
        @raw_state = raw_state
        @synchronized = (raw_state[:synchronized] == 1)
        @data_version = raw_state[:version].read_array_of_type(::FFI::TYPE_INT64, :read_int64, raw_state[:version_length])  if not raw_state[:version].null?
        serialized_data_type = raw_state[:data_type].read_array_of_pointer(raw_state[:data_type_length]).map { |string| string.read_string() }
        @data_type, @data = deserializer.call(serialized_data_type, raw_state[:raw].read_string_length(raw_state[:raw_length]))  if not raw_state[:raw].null?
        ObjectSpace.define_finalizer(self, ObjectObserveState.finalize(@raw_state))
end

Public Instance Methods

inspect() click to toggle source
# File lib/hakuban/hakuban.rb, line 380
def inspect
        "#<ObjectObserveState @synchronized=%p @version=%p>"%[@synchronized, @data_version]
end
version() click to toggle source
# File lib/hakuban/hakuban.rb, line 376
def version
        @data_version
end