Caching the advertising data and the scan response.

Fork of MaximBLE by Maxim Integrated

Committer:
kgills
Date:
Tue Mar 22 18:16:10 2016 +0000
Revision:
1:4e764337d5c5
Parent:
0:b562096246b3
Caching the advertising data and scan response.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
enginerd 0:b562096246b3 1 /*************************************************************************************************/
enginerd 0:b562096246b3 2 /*!
enginerd 0:b562096246b3 3 * \file wsf_queue.h
enginerd 0:b562096246b3 4 *
enginerd 0:b562096246b3 5 * \brief General purpose queue service.
enginerd 0:b562096246b3 6 *
enginerd 0:b562096246b3 7 * $Date: 2011-10-14 21:35:03 -0700 (Fri, 14 Oct 2011) $
enginerd 0:b562096246b3 8 * $Revision: 191 $
enginerd 0:b562096246b3 9 *
enginerd 0:b562096246b3 10 * Copyright (c) 2009-2016 ARM Limited. All rights reserved.
enginerd 0:b562096246b3 11 *
enginerd 0:b562096246b3 12 * SPDX-License-Identifier: LicenseRef-PBL
enginerd 0:b562096246b3 13 *
enginerd 0:b562096246b3 14 * Licensed under the Permissive Binary License, Version 1.0 (the "License"); you may not use
enginerd 0:b562096246b3 15 * this file except in compliance with the License. You may obtain a copy of the License at
enginerd 0:b562096246b3 16 *
enginerd 0:b562096246b3 17 * https://www.mbed.com/licenses/PBL-1.0
enginerd 0:b562096246b3 18 *
enginerd 0:b562096246b3 19 * See the License for the specific language governing permissions and limitations under the License.
enginerd 0:b562096246b3 20 */
enginerd 0:b562096246b3 21 /*************************************************************************************************/
enginerd 0:b562096246b3 22 #ifndef WSF_QUEUE_H
enginerd 0:b562096246b3 23 #define WSF_QUEUE_H
enginerd 0:b562096246b3 24
enginerd 0:b562096246b3 25 #ifdef __cplusplus
enginerd 0:b562096246b3 26 extern "C" {
enginerd 0:b562096246b3 27 #endif
enginerd 0:b562096246b3 28
enginerd 0:b562096246b3 29 /**************************************************************************************************
enginerd 0:b562096246b3 30 Macros
enginerd 0:b562096246b3 31 **************************************************************************************************/
enginerd 0:b562096246b3 32
enginerd 0:b562096246b3 33 /*! Initialize a queue */
enginerd 0:b562096246b3 34 #define WSF_QUEUE_INIT(pQueue) {(pQueue)->pHead = NULL; (pQueue)->pTail = NULL;}
enginerd 0:b562096246b3 35
enginerd 0:b562096246b3 36 /**************************************************************************************************
enginerd 0:b562096246b3 37 Data Types
enginerd 0:b562096246b3 38 **************************************************************************************************/
enginerd 0:b562096246b3 39
enginerd 0:b562096246b3 40 /*! Queue structure */
enginerd 0:b562096246b3 41 typedef struct
enginerd 0:b562096246b3 42 {
enginerd 0:b562096246b3 43 void *pHead; /*! head of queue */
enginerd 0:b562096246b3 44 void *pTail; /*! tail of queue */
enginerd 0:b562096246b3 45 } wsfQueue_t;
enginerd 0:b562096246b3 46
enginerd 0:b562096246b3 47 /**************************************************************************************************
enginerd 0:b562096246b3 48 Function Declarations
enginerd 0:b562096246b3 49 **************************************************************************************************/
enginerd 0:b562096246b3 50
enginerd 0:b562096246b3 51 /*************************************************************************************************/
enginerd 0:b562096246b3 52 /*!
enginerd 0:b562096246b3 53 * \fn WsfQueueEnq
enginerd 0:b562096246b3 54 *
enginerd 0:b562096246b3 55 * \brief Enqueue an element to the tail of a queue.
enginerd 0:b562096246b3 56 *
enginerd 0:b562096246b3 57 * \param pQueue Pointer to queue.
enginerd 0:b562096246b3 58 * \param pElem Pointer to element.
enginerd 0:b562096246b3 59 *
enginerd 0:b562096246b3 60 * \return None.
enginerd 0:b562096246b3 61 */
enginerd 0:b562096246b3 62 /*************************************************************************************************/
enginerd 0:b562096246b3 63 void WsfQueueEnq(wsfQueue_t *pQueue, void *pElem);
enginerd 0:b562096246b3 64
enginerd 0:b562096246b3 65 /*************************************************************************************************/
enginerd 0:b562096246b3 66 /*!
enginerd 0:b562096246b3 67 * \fn WsfQueueDeq
enginerd 0:b562096246b3 68 *
enginerd 0:b562096246b3 69 * \brief Dequeue an element from the head of a queue.
enginerd 0:b562096246b3 70 *
enginerd 0:b562096246b3 71 * \param pQueue Pointer to queue.
enginerd 0:b562096246b3 72 *
enginerd 0:b562096246b3 73 * \return Pointer to element that has been dequeued or NULL if queue is empty.
enginerd 0:b562096246b3 74 */
enginerd 0:b562096246b3 75 /*************************************************************************************************/
enginerd 0:b562096246b3 76 void *WsfQueueDeq(wsfQueue_t *pQueue);
enginerd 0:b562096246b3 77
enginerd 0:b562096246b3 78 /*************************************************************************************************/
enginerd 0:b562096246b3 79 /*!
enginerd 0:b562096246b3 80 * \fn WsfQueuePush
enginerd 0:b562096246b3 81 *
enginerd 0:b562096246b3 82 * \brief Push an element to the head of a queue.
enginerd 0:b562096246b3 83 *
enginerd 0:b562096246b3 84 * \param pQueue Pointer to queue.
enginerd 0:b562096246b3 85 * \param pElem Pointer to element.
enginerd 0:b562096246b3 86 *
enginerd 0:b562096246b3 87 * \return None.
enginerd 0:b562096246b3 88 */
enginerd 0:b562096246b3 89 /*************************************************************************************************/
enginerd 0:b562096246b3 90 void WsfQueuePush(wsfQueue_t *pQueue, void *pElem);
enginerd 0:b562096246b3 91
enginerd 0:b562096246b3 92 /*************************************************************************************************/
enginerd 0:b562096246b3 93 /*!
enginerd 0:b562096246b3 94 * \fn WsfQueueInsert
enginerd 0:b562096246b3 95 *
enginerd 0:b562096246b3 96 * \brief Insert an element into a queue. This function is typically used when iterating
enginerd 0:b562096246b3 97 * over a queue.
enginerd 0:b562096246b3 98 *
enginerd 0:b562096246b3 99 * \param pQueue Pointer to queue.
enginerd 0:b562096246b3 100 * \param pElem Pointer to element to be inserted.
enginerd 0:b562096246b3 101 * \param pPrev Pointer to previous element in the queue before element to be inserted.
enginerd 0:b562096246b3 102 * Note: set pPrev to NULL if pElem is first element in queue.
enginerd 0:b562096246b3 103 * \return None.
enginerd 0:b562096246b3 104 */
enginerd 0:b562096246b3 105 /*************************************************************************************************/
enginerd 0:b562096246b3 106 void WsfQueueInsert(wsfQueue_t *pQueue, void *pElem, void *pPrev);
enginerd 0:b562096246b3 107
enginerd 0:b562096246b3 108 /*************************************************************************************************/
enginerd 0:b562096246b3 109 /*!
enginerd 0:b562096246b3 110 * \fn WsfQueueRemove
enginerd 0:b562096246b3 111 *
enginerd 0:b562096246b3 112 * \brief Remove an element from a queue. This function is typically used when iterating
enginerd 0:b562096246b3 113 * over a queue.
enginerd 0:b562096246b3 114 *
enginerd 0:b562096246b3 115 * \param pQueue Pointer to queue.
enginerd 0:b562096246b3 116 * \param pElem Pointer to element to be removed.
enginerd 0:b562096246b3 117 * \param pPrev Pointer to previous element in the queue before element to be removed.
enginerd 0:b562096246b3 118 *
enginerd 0:b562096246b3 119 * \return None.
enginerd 0:b562096246b3 120 */
enginerd 0:b562096246b3 121 /*************************************************************************************************/
enginerd 0:b562096246b3 122 void WsfQueueRemove(wsfQueue_t *pQueue, void *pElem, void *pPrev);
enginerd 0:b562096246b3 123
enginerd 0:b562096246b3 124 /*************************************************************************************************/
enginerd 0:b562096246b3 125 /*!
enginerd 0:b562096246b3 126 * \fn WsfQueueCount
enginerd 0:b562096246b3 127 *
enginerd 0:b562096246b3 128 * \brief Count the number of elements in a queue.
enginerd 0:b562096246b3 129 *
enginerd 0:b562096246b3 130 * \param pQueue Pointer to queue.
enginerd 0:b562096246b3 131 *
enginerd 0:b562096246b3 132 * \return Number of elements in queue.
enginerd 0:b562096246b3 133 */
enginerd 0:b562096246b3 134 /*************************************************************************************************/
enginerd 0:b562096246b3 135 uint16_t WsfQueueCount(wsfQueue_t *pQueue);
enginerd 0:b562096246b3 136
enginerd 0:b562096246b3 137 /*************************************************************************************************/
enginerd 0:b562096246b3 138 /*!
enginerd 0:b562096246b3 139 * \fn WsfQueueEmpty
enginerd 0:b562096246b3 140 *
enginerd 0:b562096246b3 141 * \brief Return TRUE if queue is empty.
enginerd 0:b562096246b3 142 *
enginerd 0:b562096246b3 143 * \param pQueue Pointer to queue.
enginerd 0:b562096246b3 144 *
enginerd 0:b562096246b3 145 * \return TRUE if queue is empty, FALSE otherwise.
enginerd 0:b562096246b3 146 */
enginerd 0:b562096246b3 147 /*************************************************************************************************/
enginerd 0:b562096246b3 148 bool_t WsfQueueEmpty(wsfQueue_t *pQueue);
enginerd 0:b562096246b3 149
enginerd 0:b562096246b3 150
enginerd 0:b562096246b3 151 #ifdef __cplusplus
enginerd 0:b562096246b3 152 };
enginerd 0:b562096246b3 153 #endif
enginerd 0:b562096246b3 154
enginerd 0:b562096246b3 155 #endif /* WSF_QUEUE_H */