World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
Файл threadmessage.h

См. исходные тексты.

Определения типов

typedef struct AVThreadMessageQueue AVThreadMessageQueue
 
typedef enum AVThreadMessageFlags AVThreadMessageFlags
 

Перечисления

enum  AVThreadMessageFlags { AV_THREAD_MESSAGE_NONBLOCK = 1 }
 

Функции

int av_thread_message_queue_alloc (AVThreadMessageQueue **mq, unsigned nelem, unsigned elsize)
 
void av_thread_message_queue_free (AVThreadMessageQueue **mq)
 
int av_thread_message_queue_send (AVThreadMessageQueue *mq, void *msg, unsigned flags)
 
int av_thread_message_queue_recv (AVThreadMessageQueue *mq, void *msg, unsigned flags)
 
void av_thread_message_queue_set_err_send (AVThreadMessageQueue *mq, int err)
 
void av_thread_message_queue_set_err_recv (AVThreadMessageQueue *mq, int err)
 
void av_thread_message_queue_set_free_func (AVThreadMessageQueue *mq, void(*free_func)(void *msg))
 
int av_thread_message_queue_nb_elems (AVThreadMessageQueue *mq)
 
void av_thread_message_flush (AVThreadMessageQueue *mq)
 

Типы

◆ AVThreadMessageQueue

См. определение в файле threadmessage.h строка 22

◆ AVThreadMessageFlags

Перечисления

◆ AVThreadMessageFlags

Элементы перечислений
AV_THREAD_MESSAGE_NONBLOCK 

Perform non-blocking operation. If this flag is set, send and recv operations are non-blocking and return AVERROR(EAGAIN) immediately if they can not proceed.

См. определение в файле threadmessage.h строка 24

24  {
25 
32 

Функции

◆ av_thread_message_queue_alloc()

int av_thread_message_queue_alloc ( AVThreadMessageQueue **  mq,
unsigned  nelem,
unsigned  elsize 
)

Allocate a new message queue.

Аргументы
mqpointer to the message queue
nelemmaximum number of elements in the queue
elsizesize of each element in the queue
Возвращает
>=0 for success; <0 for error, in particular AVERROR(ENOSYS) if lavu was built without thread support

◆ av_thread_message_queue_free()

void av_thread_message_queue_free ( AVThreadMessageQueue **  mq)

Free a message queue.

The message queue must no longer be in use by another thread.

◆ av_thread_message_queue_send()

int av_thread_message_queue_send ( AVThreadMessageQueue mq,
void msg,
unsigned  flags 
)

Send a message on the queue.

◆ av_thread_message_queue_recv()

int av_thread_message_queue_recv ( AVThreadMessageQueue mq,
void msg,
unsigned  flags 
)

Receive a message from the queue.

◆ av_thread_message_queue_set_err_send()

void av_thread_message_queue_set_err_send ( AVThreadMessageQueue mq,
int  err 
)

Set the sending error code.

If the error code is set to non-zero, av_thread_message_queue_send() will return it immediately. Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used to cause the sending thread to stop or suspend its operation.

◆ av_thread_message_queue_set_err_recv()

void av_thread_message_queue_set_err_recv ( AVThreadMessageQueue mq,
int  err 
)

Set the receiving error code.

If the error code is set to non-zero, av_thread_message_queue_recv() will return it immediately when there are no longer available messages. Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used to cause the receiving thread to stop or suspend its operation.

◆ av_thread_message_queue_set_free_func()

void av_thread_message_queue_set_free_func ( AVThreadMessageQueue mq,
void(*)(void *msg)  free_func 
)

Set the optional free message callback function which will be called if an operation is removing messages from the queue.

◆ av_thread_message_queue_nb_elems()

int av_thread_message_queue_nb_elems ( AVThreadMessageQueue mq)

Return the current number of messages in the queue.

Возвращает
the current number of messages or AVERROR(ENOSYS) if lavu was built without thread support

◆ av_thread_message_flush()

void av_thread_message_flush ( AVThreadMessageQueue mq)

Flush the message queue

This function is mostly equivalent to reading and free-ing every message except that it will be done in a single operation (no lock/unlock between reads).

AV_THREAD_MESSAGE_NONBLOCK
@ AV_THREAD_MESSAGE_NONBLOCK
Definition: threadmessage.h:31
AVThreadMessageFlags
AVThreadMessageFlags
Definition: threadmessage.h:24