У меня есть класс-шаблон, в моем случае класс конечного автомата, так что я могу создать его с любым из моих типов классов, чтобы он мог вызывать функции-члены, используя таблицу функций с указателями на функции-члены (вроде Перезвоните).
Он обрабатывает событие, ища событие в таблице (где состояние и событие совпадают), а затем вызывает указатель на соответствующую функцию.
Это все работает. Далее я хочу добавить таймер, чтобы по истечении времени таймера он вызывал функцию processEvent() с кодом события "TIMER_EXPIRED".
Проблема для меня в том, что классы шаблонов Qt не поддерживаются для слотов/сигналов. Итак, я могу добавить QTimer, но я не могу его подключить или определить/излучать слоты/сигналы.
Моя альтернатива — реализовать таймер в классе, которому принадлежит конечный автомат, и это нормально, но тогда мне придется сделать это для всех классов, использующих класс конечного автомата.
Так что я не совсем уверен, в каком направлении двигаться дальше, есть ли какие-то хитрости, которые я могу использовать, чтобы обойти эту проблему?
Я бы добавил пример кода, но поскольку я не смог реализовать QTimer в классе конечного автомата, потому что я не могу наследовать QObject, пока нет кода для показа :(