class ElasticAPM::Spies::MongoSpy::Subscriber

@api private

def failed(event)

def failed(event)
  pop_event(event)
end

def initialize

def initialize
  @events = {}
end

def pop_event(event)

def pop_event(event)
  return unless ElasticAPM.current_transaction
  span = @events.delete(event.operation_id)
  span && span.done
end

def push_event(event)

def push_event(event)
  return unless ElasticAPM.current_transaction
  ctx = Span::Context.new(
    instance: event.database_name,
    statement: nil,
    type: 'mongodb'.freeze,
    user: nil
  )
  span = ElasticAPM.span(event.command_name, TYPE, context: ctx)
  @events[event.operation_id] = span
end

def started(event)

def started(event)
  push_event(event)
end

def succeeded(event)

def succeeded(event)
  pop_event(event)
end