Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LinkedList.h Source File

LinkedList.h

00001 /*
00002  * Copyright (c) 2018-2019, Arm Limited and affiliates.
00003  * SPDX-License-Identifier: Apache-2.0
00004  *
00005  * Licensed under the Apache License, Version 2.0 (the "License");
00006  * you may not use this file except in compliance with the License.
00007  * You may obtain a copy of the License at
00008  *
00009  *     http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef MBED_LINKED_LIST_H
00019 #define MBED_LINKED_LIST_H
00020 
00021 #include "LinkEntry.h"
00022 #include "LinkedListBase.h"
00023 
00024 /**
00025  * \defgroup drivers_LinkedList LinkedList class
00026  * \ingroup drivers-internal-api-usb
00027  * @{
00028  */
00029 template<class T>
00030 class LinkedList: public LinkedListBase {
00031 public:
00032     LinkedList() {}
00033     ~LinkedList() {}
00034 
00035     /**
00036      * Return the element at the head of the list
00037      *
00038      * @return The element at the head of the list or NULL if the list is empty
00039      */
00040     T *head()
00041     {
00042         return static_cast<T *>(LinkedListBase::head());
00043     }
00044 
00045     /**
00046      * Add an element to the tail of the list
00047      *
00048      * @param entry New element to add
00049      */
00050     void enqueue(T *entry)
00051     {
00052         LinkedListBase::enqueue(static_cast<LinkEntry *>(entry));
00053     }
00054 
00055     /**
00056      * Remove the element at the head of the list
00057      *
00058      * @return The element at the head of the list or NULL if the list is empty
00059      */
00060     T *dequeue()
00061     {
00062         return static_cast<T *>(LinkedListBase::dequeue());
00063     }
00064 };
00065 
00066 /** @}*/
00067 
00068 #endif