authenticationservices/authenticationserver/source/common/authexpression_impl.inl
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 24 Nov 2009 09:06:03 +0200
changeset 29 ece3df019add
permissions -rw-r--r--
Revision: 200948 Kit: 200948

/*
* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*
*/


#ifndef AUTHEXPRESSION_IMPL_INL
#define AUTHEXPRESSION_IMPL_INL

#include "authexpression_impl.h"

namespace AuthServer {

// -------- TSizeStream --------


inline TSizeStream::TSizeStream()
/**
	Initialise the accumulated stream size to zero.
 */
:	iSize(0)
	{
	// empty.
	}


inline TInt TSizeStream::Size() const
/**
	Accessor function returns the accumulated
	stream size in bytes.
	
	@return					Accumulated stream size in bytes.
 */
	{
	return iSize;
	}


// -------- CAuthExpressionImpl --------


inline CAuthExpressionImpl::TType CAuthExpressionImpl::Type() const
/**
	Accessor function returns this expression type, i.e.
	whether it is a plugin ID, a plugin type, an AND expression,
	or an OR expression.
	
	@return					This expression's type.
	@panic	AUTHEXPR 64		This object is internally inconsistent
							when the function is called (debug only.)
 */
	{
	__ASSERT_DEBUG(Invariant(), Panic(ETyAInvariant));
	return iType;
	}


inline const CAuthExpressionImpl* CAuthExpressionImpl::Left() const
/**
	Accessor function returns this expression's left node.
	
	@return					A non-modifiable pointer to
							this expression's left node.
	@panic	AUTHEXPR 80		This object is internally inconsistent	
							when this function is called (debug only.)
	@panic	AUTHEXPR 81		This object is not an AND or OR expression
							(debug only.)
	@see Right
 */
	{
	__ASSERT_DEBUG(Invariant(), Panic(ELfInvariant));
	__ASSERT_DEBUG(iType == EAnd || iType == EOr, Panic(ELfNotComplex));
	return iComb.iLeft;
	}

	
inline const CAuthExpressionImpl* CAuthExpressionImpl::Right() const
/**
	Accessor function returns this expression's left node.
	
	@return					A non-modifiable pointer to
							this expression's right node.
	@panic	AUTHEXPR 96		This object is not an AND or OR expression
							(debug only.)
	@see Left
 */
	{
	__ASSERT_DEBUG(Invariant(), Panic(ERgInvariant));
	__ASSERT_DEBUG(iType == EAnd || iType == EOr, Panic(ERgNotComplex));
	return iComb.iRight;
	}


inline TAuthPluginType CAuthExpressionImpl::PluginType() const
/**
	Accessor function returns this expression's plugin type.
	
	@return					This expression's plugin type.
	@panic	AUTHEXPR 112	This object is internally inconsistent
							when this function is called (debug only.)
	@panic	AUTHEXPR 113	This object does not describe a
							plugin type (debug only.)
 */
	{
	__ASSERT_DEBUG(Invariant(), Panic(EPTyInvariant));
	__ASSERT_DEBUG(iType == EPluginType, Panic(EPTyNotPluginType));
	return iPluginType;
	}


inline TPluginId CAuthExpressionImpl::PluginId() const
/**
	Accessor function returns this expression's plugin ID.
	
	@return					This expression's plugin ID.
	@panic AUTHEXPR 128		This object is internally inconsistent
							when this function is called (debug only.)
	@panic AUTHEXPR 129		This object does not identify a
							specific plugin (debug only.)
 */
	{
	__ASSERT_DEBUG(Invariant(), Panic(EPIdInvariant));
	__ASSERT_DEBUG(iType == EPluginId, Panic(EPIdNotPluginId));
	return iPluginId;
	}


inline CAuthExpressionImpl* CAuthExpressionImpl::Parent() const
/**
	Accessor function returns this node's parent.
	
	@return					This node's parent.  This is
							NULL for a root node.
	@panic AUTHEXPR 144		This object is internally inconsistent
							when this function is called (debug only.)
	@internalComponent
 */
	{
	__ASSERT_DEBUG(Invariant(), Panic(EPPrInvariant));

	return iParent;
	}



}	// namespace AuthServer {


#endif	// #ifndef AUTHEXPRESSION_IMPL_INL