Class: Sybase::Context::Callbacks

Inherits:
Object
  • Object
show all
Defined in:
lib/sybase/context.rb

Instance Method Summary collapse

Constructor Details

#initialize(context) ⇒ Callbacks

Returns a new instance of Callbacks.



44
45
46
# File 'lib/sybase/context.rb', line 44

def initialize(context)
  @context = context
end

Instance Method Details

#client(&cb) ⇒ Object



56
57
58
59
60
61
# File 'lib/sybase/context.rb', line 56

def client(&cb)
  Lib.check Lib.ct_callback(@context, nil, CS_SET, CS_CLIENTMSG_CB, lambda { |context, connection, message|
    cb.call ClientMessage.new(message)
    CS_SUCCEED
  })
end

#library(&cb) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/sybase/context.rb', line 48

def library(&cb)
  actual_callback = FFI::Function.new(:int, [:pointer, :pointer]) { |context, message|
    cb.call ClientMessage.new(message)
    CS_SUCCEED
  }
  Lib.check Lib.cs_config(@context, CS_SET, CS_MESSAGE_CB, actual_callback, CS_UNUSED, nil)
end

#server(&cb) ⇒ Object



63
64
65
66
67
68
# File 'lib/sybase/context.rb', line 63

def server(&cb)
  Lib.check Lib.ct_callback(@context, nil, CS_SET, CS_SERVERMSG_CB, lambda { |context, connection, message|
      cb.call ServerMessage.new(message)
      CS_SUCCEED
  })
end