Tôi khá mới để tăng :: asio, nhưng tôi đang làm việc trên một dự án đã tồn tại trong một vài năm và sử dụng asio rộng rãi. Nhiệm vụ hiện tại của tôi là thêm các số liệu định kỳ về những thứ khác nhau mà hệ thống đang thực hiện. Một trong các số liệu là quan sát mức độ tăng của các hàng đợi công việc :: asio :: io_service và hàng đợi hẹn giờ trở thành thời gian chạy tùy ý. Vì vậy, tôi cần để có thể yêu cầu một tăng: asio :: io_service đối tượng bao nhiêu điều nó có trong hàng đợi của nó.boost :: asio :: io_service chiếm hàng đợi độ dài cho bộ đếm thời gian và bài viết
Để minh họa cho những gì tôi đang hỏi, hãy xem xét những điều sau đây:
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"
Có cách nào với tăng ASIO để có được chức năng tương đương với những gì tôi "XXXX()" và "YYYY()" các cuộc gọi được bày tỏ?
Tôi đã xem mã hàng đợi hẹn giờ asio và thấy rằng hàng đợi thực sự chỉ là một vectơ và một danh sách, nhưng cả hai đều là riêng tư. Vì chúng là riêng tư, tôi không thể kế thừa quyền truy cập và tôi không muốn kế thừa hoặc viết một kiểu mẫu khách truy cập kỳ cục để kết hợp mọi thứ cho một cặp số liệu này: truy cập trực tiếp vào các số liệu này sẽ là lý tưởng; phiên bản đặc biệt của tăng cường mà tôi hack-up để cho tôi truy cập sẽ không được lý tưởng: Tôi đang tìm kiếm một cách để làm điều này đã tồn tại trong tăng. Hy vọng rằng tôi không phải là người đầu tiên yêu cầu điều này.
+1 mặc dù thực tế không phải là câu trả lời chính xác cho câu hỏi. lấy thông tin về hàng đợi có thể hữu ích để gỡ lỗi –
Độ dài hàng đợi là hoàn toàn hữu ích để gỡ lỗi các vấn đề về hiệu suất, nhưng bản hack nhỏ này cũng là một trợ giúp lớn. – Anne