WiConnect Host Library- API Reference Guide
Library Overview
Library API
API Examples
Classes
WiConnect Reference Manual
ACKme Website
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
CommandQueue.h
1
29
#pragma once
30
31
32
#include "WiconnectTypes.h"
33
34
35
namespace
wiconnect
36
{
37
43
class
CommandQueue
44
{
45
public
:
46
/*************************************************************************************************/
47
CommandQueue()
48
{
49
head = tail = queue;
50
count = 0;
51
}
52
53
/*************************************************************************************************/
54
bool
isFull()
55
{
56
return
count ==
WICONNECT_MAX_QUEUED_COMMANDS
;
57
}
58
59
/*************************************************************************************************/
60
bool
isEmpty()
61
{
62
return
count == 0;
63
}
64
65
/*************************************************************************************************/
66
bool
push(QueuedCommand *cmd)
67
{
68
if
(isFull())
69
{
70
return
false
;
71
}
72
++count;
73
*tail = cmd;
74
if
(++tail >= queue +
WICONNECT_MAX_QUEUED_COMMANDS
)
75
{
76
tail = queue;
77
}
78
79
return
true
;
80
}
81
82
/*************************************************************************************************/
83
QueuedCommand* pop()
84
{
85
if
(isEmpty())
86
return
NULL;
87
88
QueuedCommand* cmd = *head;
89
--count;
90
if
(++head >= queue +
WICONNECT_MAX_QUEUED_COMMANDS
)
91
{
92
head = queue;
93
}
94
return
cmd;
95
}
96
97
protected
:
98
QueuedCommand* queue[
WICONNECT_MAX_QUEUED_COMMANDS
];
99
QueuedCommand** head;
100
QueuedCommand** tail;
101
int
count;
102
};
103
104
105
106
107
}
WICONNECT_MAX_QUEUED_COMMANDS
#define WICONNECT_MAX_QUEUED_COMMANDS
When WICONNECT_ASYNC_TIMER_ENABLED, this specifies the max number of asynchronous commands that may b...
Definition:
sdk.h:88
© ACKme Networks 2014