Adjusted to avoid exports, etc, from a top-level bld.inf
/** Copyright (c) 2006-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: **/#include <stdexcept>#include "cardinality.h"#include "deserialiser.h"#include "serialiser.h"const TInt KShiftCardinality8=1;const TInt KShiftCardinality16=2;const TInt KShiftCardinality32=3;const TUint8 KMaxTUint8=0xFF;const TUint16 KMaxTUint16=0xFFFF;Cardinality::Cardinality () { }Cardinality::~Cardinality () { }void Cardinality::Internalize(Deserialiser& des) { TUint8 x; des >> x; TUint32 n=x; if ((n&0x1)==0) n>>=KShiftCardinality8; else if ((n&0x2)==0) { des >> x; n+=x<<8; n>>=KShiftCardinality16; } else if ((n&0x4)==0) { des >> x; TUint32 t = x << 16; des >> x; t += x << 8; des >> x; t += x; n+=TUint32(iSize)<<8; // platform dependency n>>=KShiftCardinality32; } else { throw std::runtime_error("corrupt cardinality"); } iSize=n; }void Cardinality::Externalize(Serialiser& ser) { TUint32 n=iSize; if (n<=(KMaxTUint8>>KShiftCardinality8)) { TUint8 x = n<<KShiftCardinality8; ser << x; } else if (n<=(KMaxTUint16>>KShiftCardinality16)) { TUint16 x = (TUint16)(n<<KShiftCardinality16)+0x1; ser << x; } else { n = (n<<KShiftCardinality32)+0x3; ser << n; } }