add doxygen via opencode
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
/*! \file pigrabberbase.h
|
||||
* \ingroup Thread
|
||||
* \~\brief
|
||||
* \~english Abstract class for create grabbers
|
||||
* \~russian Базовый класс для создания грабберов
|
||||
*/
|
||||
//! \file pigrabberbase.h
|
||||
//! \ingroup Thread
|
||||
//! \brief
|
||||
//! \~english Abstract class for creating grabbers
|
||||
//! \~russian Базовый класс для создания грабберов
|
||||
//!
|
||||
//! \details
|
||||
//! \~english Base class for thread-based data acquisition with queue support.
|
||||
//! \~russian Базовый класс для получения данных в потоке с поддержкой очереди.
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
Abstract class for create grabbers
|
||||
@@ -31,18 +34,33 @@
|
||||
#include "pitime.h"
|
||||
|
||||
|
||||
//! \~english Base class for data grabber threads
|
||||
//! \~russian Базовый класс для потоков получения данных
|
||||
template<typename T = PIByteArray>
|
||||
class PIGrabberBase: public PIThread {
|
||||
PIOBJECT_SUBCLASS(PIGrabberBase, PIThread);
|
||||
|
||||
public:
|
||||
//! \~english Constructs grabber
|
||||
//! \~russian Создает граббер
|
||||
PIGrabberBase() {
|
||||
is_opened = false;
|
||||
is_recording = false;
|
||||
}
|
||||
//! \~english Destroys grabber
|
||||
//! \~russian Уничтожает граббер
|
||||
virtual ~PIGrabberBase() { stopGrabber(false); }
|
||||
|
||||
//! \~english Returns if grabber is opened
|
||||
//! \~russian Возвращает открыт ли граббер
|
||||
virtual bool isOpened() const { return is_opened; }
|
||||
|
||||
//! \~english Returns if grabber is recording
|
||||
//! \~russian Возвращает записывает ли граббер
|
||||
virtual bool isRecording() const { return is_recording; }
|
||||
|
||||
//! \~english Start recording to file
|
||||
//! \~russian Начинает запись в файл
|
||||
virtual void startRecord(const PIString & filename) {
|
||||
if (!isOpened()) return;
|
||||
if (isRecording()) return;
|
||||
@@ -51,6 +69,8 @@ public:
|
||||
is_recording = true;
|
||||
rec_mutex.unlock();
|
||||
}
|
||||
//! \~english Stop recording
|
||||
//! \~russian Останавливает запись
|
||||
virtual void stopRecord() {
|
||||
if (!isOpened()) return;
|
||||
if (!isRecording()) return;
|
||||
@@ -59,6 +79,9 @@ public:
|
||||
stopRecordInternal();
|
||||
rec_mutex.unlock();
|
||||
}
|
||||
|
||||
//! \~english Returns last grabbed data
|
||||
//! \~russian Возвращает последние полученные данные
|
||||
T last() const {
|
||||
T ret;
|
||||
last_mutex.lock();
|
||||
@@ -66,6 +89,9 @@ public:
|
||||
last_mutex.unlock();
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english Returns if queue is empty
|
||||
//! \~russian Возвращает пустая ли очередь
|
||||
bool isEmpty() {
|
||||
bool ret;
|
||||
que_mutex.lock();
|
||||
@@ -73,6 +99,9 @@ public:
|
||||
que_mutex.unlock();
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english Returns queue size
|
||||
//! \~russian Возвращает размер очереди
|
||||
int queSize() {
|
||||
int ret;
|
||||
que_mutex.lock();
|
||||
@@ -80,6 +109,9 @@ public:
|
||||
que_mutex.unlock();
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english Dequeues data from queue
|
||||
//! \~russian Извлекает данные из очереди
|
||||
T dequeue() {
|
||||
T ret;
|
||||
// piCoutObj << "start";
|
||||
@@ -92,6 +124,9 @@ public:
|
||||
que_mutex.unlock();
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english Stop grabber thread
|
||||
//! \~russian Останавливает поток граббера
|
||||
void stopGrabber(bool wait_forever = true) {
|
||||
if (isRunning()) {
|
||||
stop();
|
||||
@@ -104,12 +139,18 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//! \~english Open grabber
|
||||
//! \~russian Открывает граббер
|
||||
bool open() {
|
||||
bool ret = openInternal();
|
||||
if (!is_opened && ret) opened();
|
||||
is_opened = ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english Close grabber
|
||||
//! \~russian Закрывает граббер
|
||||
void close() {
|
||||
bool em = is_opened;
|
||||
closeInternal();
|
||||
@@ -117,12 +158,21 @@ public:
|
||||
if (em) closed();
|
||||
is_opened = false;
|
||||
}
|
||||
|
||||
//! \~english Returns diagnostics
|
||||
//! \~russian Возвращает диагностику
|
||||
const PIDiagnostics & diag() const { return diag_; }
|
||||
|
||||
//! \~english Clear queue
|
||||
//! \~russian Очищает очередь
|
||||
void clear() {
|
||||
que_mutex.lock();
|
||||
que.clear();
|
||||
que_mutex.unlock();
|
||||
}
|
||||
|
||||
//! \~english Restart grabber
|
||||
//! \~russian Перезапускает граббер
|
||||
void restart() {
|
||||
clear();
|
||||
close();
|
||||
|
||||
Reference in New Issue
Block a user