00001 #ifndef QTCONTROLER_HPP 00002 #define QTCONTROLER_HPP 00003 00004 #include "Controler.hpp" 00005 #include "Game/Boards/ChessBoard.hpp" 00006 00007 #include <QObject> 00008 #include <QMutex> 00009 #include <QSemaphore> 00010 00011 class QtControler : public QObject, public Controler<ChessBoard> 00012 { 00013 Q_OBJECT 00014 00015 private: 00016 00017 std::vector<Move<ChessBoard::Coords> > m_moves; 00020 QMutex m_mutex; 00021 QSemaphore m_semaphore; 00022 00026 Q_SLOT void moveReceiver(Move<ChessBoard::Coords> move); 00027 00028 public: 00029 QtControler() 00030 { 00031 } 00032 00033 ~QtControler() 00034 { 00035 m_mutex.unlock(); 00036 } 00037 00038 Move<ChessBoard::Coords> getMove(); 00039 00040 void notify(const Move<ChessBoard::Coords> & move) { (void)move; } 00041 00042 void setColorControled(int color) 00043 { 00044 this->m_colorControlled = color; 00045 } 00046 }; 00047 00056 #endif