Class: Appsignal::Extension::Jruby::Transaction Private
- 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
- #pointer ⇒ Object readonly private
Instance Method Summary collapse
- #complete ⇒ Object private
- #finish(gc_duration_ms) ⇒ Object private
- #finish_event(name, title, body, body_format, gc_duration_ms) ⇒ Object private
-
#initialize(pointer) ⇒ Transaction
constructor
private
A new instance of Transaction.
-
#record_event(name, title, body, body_format, duration, gc_duration_ms) ⇒ Object
private
rubocop:disable Metrics/ParameterLists.
-
#set_action(action_name) ⇒ Object
private
rubocop:disable Naming/AccessorMethodName.
- #set_error(name, message, backtrace) ⇒ Object private
- #set_metadata(key, value) ⇒ Object private
-
#set_namespace(namespace) ⇒ Object
private
rubocop:disable Naming/AccessorMethodName.
-
#set_queue_start(time) ⇒ Object
private
rubocop:disable Naming/AccessorMethodName.
- #set_sample_data(key, payload) ⇒ Object private
- #start_event(gc_duration_ms) ⇒ Object private
- #to_json ⇒ Object private
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
#pointer ⇒ Object (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
#complete ⇒ 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.
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, , backtrace) Extension.appsignal_set_transaction_error( pointer, make_appsignal_string(name), make_appsignal_string(), 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_json ⇒ 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.
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 |