persistentstorage/dbms/pcdbms/utable/UT_STD.INL
changeset 0 08ec8eefde2f
equal deleted inserted replaced
-1:000000000000 0:08ec8eefde2f
       
     1 // Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 #include "D32Assert.h"
       
    17 
       
    18 // Class RDbIndexes
       
    19 inline RDbIndexes::RDbIndexes()
       
    20 	: iRep(_FOFF(CDbTableIndexDef,iLink))
       
    21 	{}
       
    22 // Class HDbColumnSet
       
    23 inline HDbColumnSet::TIterator HDbColumnSet::ColumnL(const TDesC& aColumn)
       
    24 	{return CONST_CAST(TIterator,((const HDbColumnSet*)this)->ColumnL(aColumn));}
       
    25 
       
    26 // Class RDbTableSchema
       
    27 inline RDbTableSchema::RDbTableSchema()
       
    28 	: iRep(_FOFF(CDbTableDef,iLink))
       
    29 	{}
       
    30 inline void RDbTableSchema::Close()
       
    31 	{Discard();}
       
    32 inline TBool RDbTableSchema::IsLoaded() const
       
    33 	{return iLoaded;}
       
    34 inline void RDbTableSchema::Remove(CDbTableDef* aDef)
       
    35 	{iRep.Remove(*aDef);}
       
    36 
       
    37 // Class CDbTable
       
    38 inline void CDbTable::Discard()
       
    39 	{__ASSERT(iRef==ECached);Release();}
       
    40 inline TBool CDbTable::IsIdle() const
       
    41 	{return iRef==EIdle;}
       
    42 inline TBool CDbTable::InUse() const
       
    43 	{return iRef>=0;}
       
    44 inline RDbCache& CDbTable::Cache()
       
    45 	{return Database().iCache;}
       
    46 
       
    47 // Class CDbTable::TValid
       
    48 inline CDbTable& CDbTable::TValid::Table() const
       
    49 	{return iTable;}
       
    50 inline CDbTable::TValid::operator TAny*() const
       
    51 	{return Table().iDatabase;}
       
    52 inline RDbTransaction& CDbTable::TValid::Transaction() const
       
    53 	{return Table().Database().Transaction();}
       
    54 
       
    55 // Class RDbTables
       
    56 inline RDbTables::RDbTables()
       
    57 	: iRep(_FOFF(CDbTable,iLink))
       
    58 	{}
       
    59 inline TBool RDbTables::IsEmpty() const
       
    60 	{return iRep.IsEmpty();}
       
    61 inline void RDbTables::Add(CDbTable& aTable)
       
    62 	{iRep.AddLast(aTable);}
       
    63 inline void RDbTables::Remove(CDbTable& aTable)
       
    64 	{iRep.Remove(aTable);}
       
    65 inline RDbTables::operator TSglQueBase&()
       
    66 	{return iRep;}
       
    67 
       
    68 // Class RDbTransaction
       
    69 inline RDbTransaction::RDbTransaction()
       
    70 	:iMaxLock(1)
       
    71 	{
       
    72 	__ASSERT(iDatabase==0);
       
    73 	__ASSERT(iAction==EDbReadLock);
       
    74 	__ASSERT(iLockState==EDbReadLock);
       
    75 	__ASSERT(iSharers==0);
       
    76 	__ASSERT(iLockCount==0);
       
    77 	__ASSERT(iUpdaters==0);
       
    78 	__ASSERT(iNotifier==0);
       
    79 	}
       
    80 inline void RDbTransaction::Open(CDbTableDatabase& aDatabase)
       
    81 	{__ASSERT(!iDatabase);iDatabase=&aDatabase;}
       
    82 inline const TDbGeneration& RDbTransaction::RollbackGeneration() const
       
    83 	{return iRollback;}
       
    84 inline TBool RDbTransaction::IsLocked() const
       
    85 	{return iLockCount>0;}
       
    86 inline CDbTableDatabase& RDbTransaction::Database()
       
    87 	{__ASSERT(iDatabase);return *iDatabase;}
       
    88 inline void RDbTransaction::ReadyL() const
       
    89 	{if (iLockState&EFailed) __LEAVE(KErrDied);}
       
    90 
       
    91 // Class CDbTableDatabase
       
    92 inline void CDbTableDatabase::Open()
       
    93 	{++iRef;}
       
    94 inline void CDbTableDatabase::AddTable(CDbTable& aTable)
       
    95 	{iTables.Add(aTable);}
       
    96 
       
    97 // Class CDbTableSource
       
    98 inline void CDbTableSource::SetIterator(CDbRecordIter* anIter)
       
    99 	{iIter=anIter;}
       
   100 inline CDbTable& CDbTableSource::Table()
       
   101 	{return iRow.Table();}
       
   102 inline const RDbTableRow& CDbTableSource::Row()
       
   103 	{return iRow;}
       
   104 
       
   105 // Class CDbDataStage
       
   106 inline void CDbDataStage::SetSource(CDbDataSource* aSource)
       
   107 	{__ASSERT(!iSource);iSource=aSource;}
       
   108 inline CDbDataSource& CDbDataStage::Source()
       
   109 	{return *iSource;}
       
   110 inline const CDbDataSource& CDbDataStage::Source() const
       
   111 	{return *iSource;}
       
   112 
       
   113 // Class CDbRestrictStage
       
   114 inline void CDbRestrictStage::SetRestriction(CSqlSearchCondition* aRestriction)
       
   115 	{__ASSERT(!iRestriction);iRestriction=aRestriction;}
       
   116 inline CSqlSearchCondition& CDbRestrictStage::Restriction() const
       
   117 	{__ASSERT(iRestriction);return *iRestriction;}
       
   118 
       
   119 // Class RDbAccessPlan
       
   120 inline RDbAccessPlan::RDbAccessPlan(CSqlQuery* aQuery,TDbTextComparison aComparison)
       
   121 	:iPlans(EGranularity),iComparison(aComparison),iQuery(aQuery)
       
   122 	{__DEBUG(iSource=NULL;iTable=NULL;)}
       
   123 inline RDbAccessPlan::RDbAccessPlan()
       
   124 	:iPlans(EGranularity),iComparison(EDbCompareNormal)
       
   125 	{__DEBUG(iSource=NULL;iTable=NULL;)}
       
   126 inline CDbTable& RDbAccessPlan::Table()
       
   127 	{__ASSERT(iTable);return *iTable;}
       
   128 inline CDbDataSource& RDbAccessPlan::Source()
       
   129 	{__ASSERT(iSource);return *iSource;}
       
   130 inline CDbDataSource* RDbAccessPlan::Adopt()
       
   131 	{__ASSERT(iSource);CDbDataSource* s=iSource;iSource=NULL;return s;}
       
   132 
       
   133 // Class RDbAccessPlan::TPlan
       
   134 inline RDbAccessPlan::TPlan::TPlan()
       
   135 	:iFlags(0),iLower(0),iUpper(0)
       
   136 	{}
       
   137 inline TBool RDbAccessPlan::TPlan::operator!=(const TPlan& aPlan) const
       
   138 	{return !(iFlags==aPlan.iFlags && iIndex==aPlan.iIndex && iUpper==aPlan.iUpper && iLower==aPlan.iLower);}
       
   139 
       
   140 // Class RDbAccessPlan::CDbCompPredicateList
       
   141 inline RDbAccessPlan::CDbCompPredicateList::CDbCompPredicateList(const CDbTableDef& aTableDef,TDbTextComparison aComparison)
       
   142 	: CArrayFixFlat<CSqlCompPredicate*>(EGranularity),iTableDef(aTableDef),iComparison(aComparison),iRestriction(EFalse)
       
   143 	{}
       
   144 inline TBool RDbAccessPlan::CDbCompPredicateList::IsRestriction()
       
   145 	{return iRestriction;}
       
   146 
       
   147 // Class CDbTableCursor
       
   148 inline CDbBlobSpace& CDbTableCursor::BlobsL() const
       
   149 	{CDbBlobSpace* b=iValid.Table().BlobsL();__ASSERT(b);return *b;}
       
   150 inline void CDbTableCursor::AddSink()
       
   151 	{__ASSERT((iFlags&EWriteBuf)==0);iFlags|=EWriteBuf;}
       
   152 inline void CDbTableCursor::ReleaseSink()
       
   153 	{__ASSERT(iFlags&EWriteBuf);iFlags&=~EWriteBuf;}
       
   154 inline void CDbTableCursor::AddSource()
       
   155 	{__ASSERT(iReadBuf<EMaxReadBuf);++iReadBuf;}
       
   156 inline void CDbTableCursor::ReleaseSource()
       
   157 	{__ASSERT(iReadBuf>0);--iReadBuf;}
       
   158 
       
   159 // Class CDbTableCursor::HReadBuf
       
   160 inline void CDbTableCursor::HReadBuf::Set(MStreamBuf* aHost)
       
   161 	{__ASSERT(!iHost);iHost=aHost;}
       
   162 
       
   163 // Class CDbTableDatabase::CIncremental
       
   164 inline RDbTransaction& CDbTableDatabase::CIncremental::Transaction()
       
   165 	{return iTransaction;}
       
   166 inline CDbTableDatabase& CDbTableDatabase::CIncremental::Database()
       
   167 	{return Transaction().Database();}
       
   168 inline void CDbTableDatabase::CIncremental::Construct(CStepper* aStepper)
       
   169 	{iStepper=aStepper;}
       
   170 inline TBool CDbTableDatabase::CIncremental::IsCommitted() const
       
   171 	{return iState==ECommitted;}
       
   172 
       
   173 // Class CDbTableDatabase::CCreateIndex
       
   174 inline CDbTableDatabase::CCreateIndex::CCreateIndex(RDbTransaction& aTransaction)
       
   175 	: CIncrementalDDL(aTransaction)
       
   176 	{}
       
   177 // Class CDbTableDatabase::CDropIndex
       
   178 inline CDbTableDatabase::CDropIndex::CDropIndex(RDbTransaction& aTransaction)
       
   179 	: CIncrementalDDL(aTransaction)
       
   180 	{}
       
   181 // Class CDbTableDatabase::CDropTable
       
   182 inline CDbTableDatabase::CDropTable::CDropTable(RDbTransaction& aTransaction)
       
   183 	: CIncrementalDDL(aTransaction)
       
   184 	{}
       
   185 // Class CDbTableDatabase::CAlterTable
       
   186 inline CDbTableDatabase::CAlterTable::CAlterTable(RDbTransaction& aTransaction,CDbTableDef& aDef)
       
   187 	: CIncrementalDDL(aTransaction), iDef(aDef)
       
   188 	{}
       
   189 // Class CDbIncrementalDML
       
   190 inline CDbIncrementalDML::CDbIncrementalDML(RDbAccessPlan& aPlan)
       
   191 	:iTable(aPlan.Table()),iSource(aPlan.Adopt())
       
   192 	{__ASSERT(iState==EInitialising);}
       
   193 inline RDbTransaction& CDbIncrementalDML::Transaction()
       
   194 	{return iTable.Database().Transaction();}
       
   195 inline TBool CDbIncrementalDML::IsUpdate() const
       
   196 	{return iValues!=NULL;}
       
   197 inline void CDbIncrementalDML::SetState(TState aState)
       
   198 	{iState=aState;}
       
   199 
       
   200 // Class CDbTableDatabase::CInterface
       
   201 inline CDbTableDatabase& CDbTableDatabase::CInterface::Database()
       
   202 	{return iDatabase;}
       
   203 
       
   204 // Class CDbTableDatabase::CSource
       
   205 inline CDbTableDatabase& CDbTableDatabase::CSource::Database()
       
   206 	{return iDatabase;}