Class: Appsignal::Extension::Jruby::Transaction Private

Inherits:
Object
  • Object
show all
Includes:
StringHelpers
Defined in:
lib/appsignal/extension/jruby.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

rubocop:disable Metrics/ClassLength

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from StringHelpers

#make_appsignal_string, #make_ruby_string

Constructor Details

#initialize(pointer) ⇒ Transaction

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Transaction.



252
253
254
255
256
257
# File 'lib/appsignal/extension/jruby.rb', line 252

def initialize(pointer)
  @pointer = FFI::AutoPointer.new(
    pointer,
    Extension.method(:appsignal_free_transaction)
  )
end

Instance Attribute Details

#pointerObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



250
251
252
# File 'lib/appsignal/extension/jruby.rb', line 250

def pointer
  @pointer
end

Instance Method Details

#completeObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



357
358
359
# File 'lib/appsignal/extension/jruby.rb', line 357

def complete
  Extension.appsignal_complete_transaction(pointer)
end

#finish(gc_duration_ms) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



353
354
355
# File 'lib/appsignal/extension/jruby.rb', line 353

def finish(gc_duration_ms)
  Extension.appsignal_finish_transaction(pointer, gc_duration_ms)
end

#finish_event(name, title, body, body_format, gc_duration_ms) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
# File 'lib/appsignal/extension/jruby.rb', line 263

def finish_event(name, title, body, body_format, gc_duration_ms)
  case body
  when String
    method = :appsignal_finish_event
    body_arg = make_appsignal_string(body)
  when Data
    method = :appsignal_finish_event_data
    body_arg = body.pointer
  else
    raise ArgumentError,
      "body argument should be a String or Appsignal::Extension::Data"
  end
  Extension.public_send(
    method,
    pointer,
    make_appsignal_string(name),
    make_appsignal_string(title),
    body_arg,
    body_format,
    gc_duration_ms
  )
end

#record_event(name, title, body, body_format, duration, gc_duration_ms) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

rubocop:disable Metrics/ParameterLists



286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
# File 'lib/appsignal/extension/jruby.rb', line 286

def record_event(name, title, body, body_format, duration, gc_duration_ms) # rubocop:disable Metrics/ParameterLists
  case body
  when String
    method = :appsignal_record_event
    body_arg = make_appsignal_string(body)
  when Data
    method = :appsignal_record_event_data
    body_arg = body.pointer
  else
    raise ArgumentError,
      "body argument should be a String or Appsignal::Extension::Data"
  end
  Extension.public_send(
    method,
    pointer,
    make_appsignal_string(name),
    make_appsignal_string(title),
    body_arg,
    body_format,
    duration,
    gc_duration_ms
  )
end

#set_action(action_name) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

rubocop:disable Naming/AccessorMethodName



319
320
321
322
323
324
# File 'lib/appsignal/extension/jruby.rb', line 319

def set_action(action_name) # rubocop:disable Naming/AccessorMethodName
  Extension.appsignal_set_transaction_action(
    pointer,
    make_appsignal_string(action_name)
  )
end

#set_error(name, message, backtrace) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



310
311
312
313
314
315
316
317
# File 'lib/appsignal/extension/jruby.rb', line 310

def set_error(name, message, backtrace)
  Extension.appsignal_set_transaction_error(
    pointer,
    make_appsignal_string(name),
    make_appsignal_string(message),
    backtrace.pointer
  )
end

#set_metadata(key, value) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



345
346
347
348
349
350
351
# File 'lib/appsignal/extension/jruby.rb', line 345

def (key, value)
  Extension.(
    pointer,
    make_appsignal_string(key),
    make_appsignal_string(value)
  )
end

#set_namespace(namespace) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

rubocop:disable Naming/AccessorMethodName



326
327
328
329
330
331
# File 'lib/appsignal/extension/jruby.rb', line 326

def set_namespace(namespace) # rubocop:disable Naming/AccessorMethodName
  Extension.appsignal_set_transaction_namespace(
    pointer,
    make_appsignal_string(namespace)
  )
end

#set_queue_start(time) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

rubocop:disable Naming/AccessorMethodName



341
342
343
# File 'lib/appsignal/extension/jruby.rb', line 341

def set_queue_start(time) # rubocop:disable Naming/AccessorMethodName
  Extension.appsignal_set_transaction_queue_start(pointer, time)
end

#set_sample_data(key, payload) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



333
334
335
336
337
338
339
# File 'lib/appsignal/extension/jruby.rb', line 333

def set_sample_data(key, payload)
  Extension.appsignal_set_transaction_sample_data(
    pointer,
    make_appsignal_string(key),
    payload.pointer
  )
end

#start_event(gc_duration_ms) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



259
260
261
# File 'lib/appsignal/extension/jruby.rb', line 259

def start_event(gc_duration_ms)
  Extension.appsignal_start_event(pointer, gc_duration_ms)
end

#to_jsonObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



361
362
363
364
# File 'lib/appsignal/extension/jruby.rb', line 361

def to_json
  json = Extension.appsignal_transaction_to_json(pointer)
  make_ruby_string(json) if json[:len] > 0
end