boost :: asio :: io_service ocupou comprimentos de fila para temporizadores e postagens

Sou bastante novo para impulsionar :: asio, mas estou trabalhando em um projeto que já existe há alguns anos e usa o asio extensivamente. Minha tarefa atual é adicionar métricas periódicas sobre várias coisas que o sistema está fazendo. Uma das métricas é observar a profundidade das filas de trabalho do boost :: asio :: io_service e as filas de timer se tornam em um período arbitrário de tempo de execução. Portanto, preciso solicitar um impulso: o objeto asio :: io_service quantas coisas ele tem em suas fila

Para ilustrar o que estou perguntando, considere o seguinte:

boost::asio::io_service asio_service;

asio_service.post( boost::bind( do_work, "eat" ) );
asio_service.post( boost::bind( do_work, "drink" ) );
asio_service.post( boost::bind( do_work, "and be merry!" ) );

std::cout << "There are " << asio_service.XXXX() 
          << "things in the post() queue and "
          << asio_service.YYYY() << " timers"

Existe uma maneira com o boost asio para obter funcionalidade equivalente ao que minhas chamadas "XXXX ()" e "YYYY ()" estão expressand

Olhei para o código da fila do temporizador asio e vi que a fila é realmente apenas um vetor e uma lista, mas ambos são privados. Como eles são privados, não posso herdar para obter acesso, e não quero herdar ou escrever algum tipo de padrão de visitante imparcial para finalizar esse par de métricas: o acesso direto a essas contagens seria ideal; Versões especiais de boost que eu hackeei para me dar acesso não seriam ideais: estou procurando uma maneira de fazer isso que já exista no boost. Espero não ser o primeiro a pedir isso.

questionAnswers(1)

yourAnswerToTheQuestion