Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
1.2 KiB

//
// QBASE.h
//
// This file defines CQElement - a base class for all types which
// are to be used in the lockq.h and other templated queue manipulation
// classes.
//
//
#ifndef _QBASE_H_
#define _QBASE_H_
#include "dbgtrace.h"
//-----------------------------------------------
// Base Element Class
//
// This is the base class for Queue and stack Elements.
// The various implementations of Stacks and Queues are friends.
//
class CQElement {
public :
CQElement *m_pNext ;
inline CQElement( ) ;
inline CQElement( CQElement* p ) ;
inline ~CQElement( ) ;
} ;
CQElement::CQElement( ) :
m_pNext( 0 ) {
//
// Construct a queue element - not in any list pointer must be NULL
//
}
CQElement::~CQElement( ) {
//
// Destroy a queue element - next pointer must be NULL or
// 0xFFFFFFFF (for lockq.h) so that we know the element is not
// on a queue at destruction time and the user has properly
// managed the linking and unlinking of the queue.
//
_ASSERT( m_pNext == 0 || m_pNext == (CQElement*)0xFFFFFFFF ) ;
}
CQElement::CQElement( CQElement *pIn ) :
m_pNext( pIn ) {
//
// Constructor which sets the initial next pointer value !
//
}
#endif // _CQUEUE_H