mirror of
https://github.com/dashr9230/SA-MP.git
synced 2025-09-19 12:16:15 +08:00
Revert RakNet source files back to the original v2.518 state
* Add RakNet source files to the VS project
This commit is contained in:
110
raknet/DS_QueueLinkedList.h
Normal file
110
raknet/DS_QueueLinkedList.h
Normal file
@ -0,0 +1,110 @@
|
||||
/// \file
|
||||
/// \brief \b [Internal] A queue implemented as a linked list.
|
||||
///
|
||||
/// This file is part of RakNet Copyright 2003 Kevin Jenkins.
|
||||
///
|
||||
/// Usage of RakNet is subject to the appropriate license agreement.
|
||||
/// Creative Commons Licensees are subject to the
|
||||
/// license found at
|
||||
/// http://creativecommons.org/licenses/by-nc/2.5/
|
||||
/// Single application licensees are subject to the license found at
|
||||
/// http://www.rakkarsoft.com/SingleApplicationLicense.html
|
||||
/// Custom license users are subject to the terms therein.
|
||||
/// GPL license users are subject to the GNU General Public
|
||||
/// License as published by the Free
|
||||
/// Software Foundation; either version 2 of the License, or (at your
|
||||
/// option) any later version.
|
||||
|
||||
#ifndef __QUEUE_LINKED_LIST_H
|
||||
#define __QUEUE_LINKED_LIST_H
|
||||
|
||||
#include "DS_LinkedList.h"
|
||||
#include "Export.h"
|
||||
|
||||
/// The namespace DataStructures was only added to avoid compiler errors for commonly named data structures
|
||||
/// As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish.
|
||||
namespace DataStructures
|
||||
{
|
||||
/// \brief A queue implemented using a linked list. Rarely used.
|
||||
template <class QueueType>
|
||||
class RAK_DLL_EXPORT QueueLinkedList
|
||||
{
|
||||
|
||||
public:
|
||||
QueueLinkedList();
|
||||
QueueLinkedList( const QueueLinkedList& original_copy );
|
||||
bool operator= ( const QueueLinkedList& original_copy );
|
||||
QueueType Pop( void );
|
||||
QueueType& Peek( void );
|
||||
QueueType& EndPeek( void );
|
||||
void Push( const QueueType& input );
|
||||
unsigned int Size( void );
|
||||
void Clear( void );
|
||||
void Compress( void );
|
||||
|
||||
private:
|
||||
LinkedList<QueueType> data;
|
||||
};
|
||||
|
||||
template <class QueueType>
|
||||
QueueLinkedList<QueueType>::QueueLinkedList()
|
||||
{
|
||||
}
|
||||
|
||||
template <class QueueType>
|
||||
inline unsigned int QueueLinkedList<QueueType>::Size()
|
||||
{
|
||||
return data.Size();
|
||||
}
|
||||
|
||||
template <class QueueType>
|
||||
inline QueueType QueueLinkedList<QueueType>::Pop( void )
|
||||
{
|
||||
data.Beginning();
|
||||
return ( QueueType ) data.Pop();
|
||||
}
|
||||
|
||||
template <class QueueType>
|
||||
inline QueueType& QueueLinkedList<QueueType>::Peek( void )
|
||||
{
|
||||
data.Beginning();
|
||||
return ( QueueType ) data.Peek();
|
||||
}
|
||||
|
||||
template <class QueueType>
|
||||
inline QueueType& QueueLinkedList<QueueType>::EndPeek( void )
|
||||
{
|
||||
data.End();
|
||||
return ( QueueType ) data.Peek();
|
||||
}
|
||||
|
||||
template <class QueueType>
|
||||
void QueueLinkedList<QueueType>::Push( const QueueType& input )
|
||||
{
|
||||
data.End();
|
||||
data.Add( input );
|
||||
}
|
||||
|
||||
template <class QueueType>
|
||||
QueueLinkedList<QueueType>::QueueLinkedList( const QueueLinkedList& original_copy )
|
||||
{
|
||||
data = original_copy.data;
|
||||
}
|
||||
|
||||
template <class QueueType>
|
||||
bool QueueLinkedList<QueueType>::operator= ( const QueueLinkedList& original_copy )
|
||||
{
|
||||
if ( ( &original_copy ) == this )
|
||||
return false;
|
||||
|
||||
data = original_copy.data;
|
||||
}
|
||||
|
||||
template <class QueueType>
|
||||
void QueueLinkedList<QueueType>::Clear ( void )
|
||||
{
|
||||
data.Clear();
|
||||
}
|
||||
} // End namespace
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user