World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Класс CallBackTimer

Открытые члены

 CallBackTimer ()
 
virtual ~CallBackTimer ()
 
void Start (int interval, std::function< void(void)> func)
 
void Stop ()
 
bool IsRunning () const noexcept
 

Закрытые данные

std::atomic< bool > bRunning
 
std::thread theThread
 

Подробное описание

См. определение в файле OpenALSoundProvider.cpp строка 386

Конструктор(ы)

◆ CallBackTimer()

CallBackTimer::CallBackTimer ( )
inline

См. определение в файле OpenALSoundProvider.cpp строка 388

388 : bRunning(false) {}

◆ ~CallBackTimer()

virtual CallBackTimer::~CallBackTimer ( )
inlinevirtual

См. определение в файле OpenALSoundProvider.cpp строка 389

389  {
390  if (bRunning.load(std::memory_order_acquire)) {
391  Stop();
392  }
393  }

Перекрестные ссылки bRunning и Stop().

+ Граф вызовов:

Методы

◆ Start()

void CallBackTimer::Start ( int  interval,
std::function< void(void)>  func 
)
inline

См. определение в файле OpenALSoundProvider.cpp строка 395

395  {
396  if (bRunning.load(std::memory_order_acquire)) {
397  Stop();
398  }
399  bRunning.store(true, std::memory_order_release);
400  theThread = std::thread([this, interval, func]() {
401  while (bRunning.load(std::memory_order_acquire)) {
402  func();
403  std::this_thread::sleep_for(
404  std::chrono::milliseconds(interval));
405  }
406  });
407  }

Перекрестные ссылки bRunning, Stop() и theThread.

Используется в AudioTrackS16::Play().

+ Граф вызовов:
+ Граф вызова функции:

◆ Stop()

void CallBackTimer::Stop ( )
inline

См. определение в файле OpenALSoundProvider.cpp строка 409

409  {
410  bRunning.store(false, std::memory_order_release);
411  if (theThread.joinable()) {
412  theThread.join();
413  }
414  }

Перекрестные ссылки bRunning и theThread.

Используется в AudioTrackS16::Close(), AudioSample16::Close(), AudioTrackS16::Pause(), Start() и ~CallBackTimer().

+ Граф вызова функции:

◆ IsRunning()

bool CallBackTimer::IsRunning ( ) const
inlinenoexcept

См. определение в файле OpenALSoundProvider.cpp строка 416

416  {
417  return (bRunning.load(std::memory_order_acquire) &&
418  theThread.joinable());
419  }

Перекрестные ссылки bRunning и theThread.

Данные класса

◆ bRunning

std::atomic<bool> CallBackTimer::bRunning
private

См. определение в файле OpenALSoundProvider.cpp строка 422

Используется в IsRunning(), Start(), Stop() и ~CallBackTimer().

◆ theThread

std::thread CallBackTimer::theThread
private

См. определение в файле OpenALSoundProvider.cpp строка 423

Используется в IsRunning(), Start() и Stop().


Объявления и описания членов класса находятся в файле:
func
GLenum func
Definition: SDL_opengl_glext.h:660
CallBackTimer::Stop
void Stop()
Definition: OpenALSoundProvider.cpp:409
CallBackTimer::bRunning
std::atomic< bool > bRunning
Definition: OpenALSoundProvider.cpp:422
CallBackTimer::theThread
std::thread theThread
Definition: OpenALSoundProvider.cpp:423