Class: LLDB::Broadcaster

Inherits:
Object
  • Object
show all
Includes:
NativeLifecycle
Defined in:
lib/lldb/broadcaster.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from NativeLifecycle

#close, #closed?, #context, #context!, #ensure_open!, #initialize_native_object

Constructor Details

#initialize(name = nil, context: nil, pointer: nil) ⇒ Broadcaster

Returns a new instance of Broadcaster.

RBS:

  • name: String?

  • context: Context?

  • pointer: FFI::Pointer?

  • return: void



13
14
15
16
17
18
19
20
# File 'lib/lldb/broadcaster.rb', line 13

def initialize(name = nil, context: nil, pointer: nil)
  ptr = pointer || FFIBindings.lldb_broadcaster_create(name)
  initialize_native_object(
    ptr,
    release: ->(released) { FFIBindings.lldb_broadcaster_destroy(released) },
    context: context
  )
end

Class Method Details

.from_ptr(ptr, context: nil) ⇒ Object

RBS:

  • ptr: FFI::Pointer

  • context: Context?

  • return: Broadcaster



25
26
27
# File 'lib/lldb/broadcaster.rb', line 25

def self.from_ptr(ptr, context: nil)
  new(context: context, pointer: ptr)
end

Instance Method Details

#add_listener(listener, event_mask) ⇒ Object

RBS:

  • listener: Listener

  • event_mask: Integer

  • return: Integer



44
45
46
47
# File 'lib/lldb/broadcaster.rb', line 44

def add_listener(listener, event_mask)
  ensure_open!
  FFIBindings.lldb_broadcaster_add_listener(@ptr, listener.to_ptr, event_mask)
end

#broadcast_event_by_type(event_type, unique: false) ⇒ Object

RBS:

  • event_type: Integer

  • unique: bool

  • return: void



68
69
70
71
72
# File 'lib/lldb/broadcaster.rb', line 68

def broadcast_event_by_type(event_type, unique: false)
  ensure_open!
  FFIBindings.lldb_broadcaster_broadcast_event_by_type(@ptr, event_type, unique ? 1 : 0)
  nil
end

#event_type_has_listeners?(event_type) ⇒ Boolean

RBS:

  • event_type: Integer

  • return: bool

Returns:

  • (Boolean)


59
60
61
62
63
# File 'lib/lldb/broadcaster.rb', line 59

def event_type_has_listeners?(event_type)
  return false unless valid?

  FFIBindings.lldb_broadcaster_event_type_has_listeners(@ptr, event_type) != 0
end

#nameObject

RBS:

  • return: String?



35
36
37
38
39
# File 'lib/lldb/broadcaster.rb', line 35

def name
  return nil unless valid?

  FFIBindings.lldb_broadcaster_get_name(@ptr)
end

#remove_listener(listener, event_mask = (1 << 32) - 1) ⇒ Object

RBS:

  • listener: Listener

  • event_mask: Integer

  • return: bool



52
53
54
55
# File 'lib/lldb/broadcaster.rb', line 52

def remove_listener(listener, event_mask = (1 << 32) - 1)
  ensure_open!
  FFIBindings.lldb_broadcaster_remove_listener(@ptr, listener.to_ptr, event_mask) != 0
end

#to_ptrObject

RBS:

  • return: FFI::Pointer



75
76
77
# File 'lib/lldb/broadcaster.rb', line 75

def to_ptr
  @ptr
end

#valid?Boolean

RBS:

  • return: bool

Returns:

  • (Boolean)


30
31
32
# File 'lib/lldb/broadcaster.rb', line 30

def valid?
  !@ptr.null? && FFIBindings.lldb_broadcaster_is_valid(@ptr) != 0
end