wiki:programmersguide/architecture/core/Service

Version 2 (modified by jano.simas, 10 years ago) (diff)

--

Service

A classe Service serve como classe base para a construção dos serviços.

Ela constrola uma pool de threads e uma fila de processos que devem ser executados e ser responsabiliza por alocar os processos nas threads.

Classes derivadas

As classes derivadas devem reimplementar os métodos:

  virtual bool mainLoopWaitCondition();

Verifica se existe algum processo na fila ou se o serviço deve ser finalizado.

  virtual bool checkNextData();

Aloca o próximo serviço da fila e retorna se ainda existe algum serviço na fila.

  virtual void updateNumberOfThreads(int);

Atualiza o número de threads disponíveis.

Além disso as classes derivadas devem ser capazes de "ouvir" os sinais do DataManager e implementar um sistema de adicionar novos processos na fila:

std::queue<std::packaged_task<void()> > taskQueue_;