Mbed OS Reference
Loading...
Searching...
No Matches
LinkedList.h
1/*
2 * Copyright (c) 2018-2019, Arm Limited and affiliates.
3 * SPDX-License-Identifier: Apache-2.0
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef MBED_LINKED_LIST_H
19#define MBED_LINKED_LIST_H
20
21#include "LinkEntry.h"
22#include "LinkedListBase.h"
23
24/**
25 * \defgroup drivers_LinkedList LinkedList class
26 * \ingroup drivers-internal-api-usb
27 * @{
28 */
29template<class T>
31public:
32 LinkedList() {}
33 ~LinkedList() {}
34
35 /**
36 * Return the element at the head of the list
37 *
38 * @return The element at the head of the list or NULL if the list is empty
39 */
40 T *head()
41 {
42 return static_cast<T *>(LinkedListBase::head());
43 }
44
45 /**
46 * Add an element to the tail of the list
47 *
48 * @param entry New element to add
49 */
50 void enqueue(T *entry)
51 {
52 LinkedListBase::enqueue(static_cast<LinkEntry *>(entry));
53 }
54
55 /**
56 * Remove the element at the head of the list
57 *
58 * @return The element at the head of the list or NULL if the list is empty
59 */
61 {
62 return static_cast<T *>(LinkedListBase::dequeue());
63 }
64};
65
66/** @}*/
67
68#endif
Definition: LinkEntry.h:28
LinkEntry * head()
Return the element at the head of the list.
LinkEntry * dequeue()
Remove the element at the head of the list.
void enqueue(LinkEntry *entry)
Add an element to the tail of the list.
void enqueue(T *entry)
Add an element to the tail of the list.
Definition: LinkedList.h:50
T * dequeue()
Remove the element at the head of the list.
Definition: LinkedList.h:60
T * head()
Return the element at the head of the list.
Definition: LinkedList.h:40