boost :: asio y objeto activo

He implementado algunos patrones de diseño de objetos activos basados ​​en módulos. Es una implementación muy sencilla. Tengo Scheduler, ActivationList, Requests and Futures para obtener respuesta. Mis requerimientos eran así:

El acceso al objeto activo se serializará ejecutando sus métodos dentro de su propio hilo (requisito principal y suposición del patrón de diseño del objeto activo)La persona que llama deberá poder especificar la prioridad de ejecución de las solicitudes. Esto significa que si hay más de cero solicitudes en espera de ejecución, se ordenarán según la prioridad asignada a cada solicitud. Las solicitudes con mayor prioridad se ejecutarán primero, de modo que si siempre habrá algunas solicitudes pendientes en la Lista de Activación y tendrán una prioridad más alta que una solicitud dada, esta solicitud nunca se ejecutará. Está bien para mí.Debe ser posible especificar el número máximo de solicitudes pendientes en la lista (limitar el uso de memoria)Será posible invalidar todas las solicitudes pendientes.Las solicitudes deben ser capaces de devolver valores (bloqueando a la persona que llama) O simplemente deben ejecutarse sin retorno de valor, pero la persona que llama debe ser bloqueada hasta que se procese la solicitud O la persona que llama no debe ser bloqueada y no es importante para ella si la solicitud dada ha sido procesada o no solJusto antes de la ejecución de la solicitud, se ejecutará algún método de protección para verificar si la solicitud dada se ejecutará o no. De lo contrario, devolverá algún valor indefinido a la persona que llama (en mi implementación actual es boost :: none, porque cada tipo de devolución de solicitud es boost :: opcional)

Bien, ahora pregunta: ¿Es posible usar boost :: asio y cumplir todos mis requisitos? Mi implementación está funcionando, pero me gustaría usar algo que probablemente esté implementado de una manera mucho mejor de lo que lo he hecho. También me gustaría saberlo para el futuro y no "reinventar la rueda" una vez más.

Respuestas a la pregunta(1)

Su respuesta a la pregunta