git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@1012 0109f412-320b-0410-ab79-c3e0c5ffbbe6
136 lines
3.8 KiB
C
136 lines
3.8 KiB
C
//------------------------------------------------------------------------------
|
|
// Desc: This include file contains the structure definitions and prototypes
|
|
// needed to capture statistics.
|
|
// Tabs: 3
|
|
//
|
|
// Copyright (c) 1997-2007 Novell, Inc. All Rights Reserved.
|
|
//
|
|
// This library is free software; you can redistribute it and/or
|
|
// modify it under the terms of the GNU Lesser General Public
|
|
// License as published by the Free Software Foundation; version 2.1
|
|
// of the License.
|
|
//
|
|
// This library is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
// Library Lesser General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Lesser General Public
|
|
// License along with this library; if not, contact Novell, Inc.
|
|
//
|
|
// To contact Novell about this file by physical or electronic mail,
|
|
// you may find current contact information at www.novell.com.
|
|
//
|
|
// $Id$
|
|
//------------------------------------------------------------------------------
|
|
|
|
#ifndef FLMSTAT_H
|
|
#define FLMSTAT_H
|
|
|
|
#define INIT_DB_STAT_ARRAY_SIZE 5
|
|
#define DB_STAT_ARRAY_INCR_SIZE 5
|
|
#define INIT_LFILE_STAT_ARRAY_SIZE 5
|
|
#define LFILE_STAT_ARRAY_INCR_SIZE 5
|
|
|
|
/**************************************************************************
|
|
Various function prototypes.
|
|
**************************************************************************/
|
|
|
|
RCODE flmStatGetDb( // Source: flmstat.cpp
|
|
SFLM_STATS * pFlmStats,
|
|
F_Database * pDatabase,
|
|
FLMUINT uiLowStart,
|
|
SFLM_DB_STATS ** ppDbStatsRV,
|
|
FLMUINT * puiDbAllocSeqRV,
|
|
FLMUINT * puiDbTblPosRV);
|
|
|
|
RCODE flmStatGetLFile( // Source: flmstat.cpp
|
|
SFLM_DB_STATS * pDbStats,
|
|
FLMUINT uiLFileNum,
|
|
eLFileType eLfType,
|
|
FLMUINT uiLowStart,
|
|
SFLM_LFILE_STATS ** ppLFileStatsRV,
|
|
FLMUINT * puiLFileAllocSeqRV,
|
|
FLMUINT * puiLFileTblPosRV);
|
|
|
|
void flmStatReset( // Source: flmstat.cpp
|
|
SFLM_STATS * pStats,
|
|
FLMBOOL bFree);
|
|
|
|
FINLINE void flmStatStart(
|
|
SFLM_STATS * pStats)
|
|
{
|
|
pStats->bCollectingStats = TRUE;
|
|
flmStatReset( pStats, TRUE);
|
|
}
|
|
|
|
FINLINE void flmStatStop(
|
|
SFLM_STATS * pStats)
|
|
{
|
|
if (pStats->bCollectingStats)
|
|
{
|
|
pStats->bCollectingStats = FALSE;
|
|
f_timeGetSeconds( &pStats->uiStopTime);
|
|
}
|
|
}
|
|
|
|
FINLINE void flmStatFree(
|
|
SFLM_STATS * pStats)
|
|
{
|
|
pStats->bCollectingStats = FALSE;
|
|
flmStatReset( pStats, TRUE);
|
|
}
|
|
|
|
void flmUpdateBlockIOStats( // Source: flmstat.cpp
|
|
SFLM_BLOCKIO_STATS * pDest,
|
|
SFLM_BLOCKIO_STATS * pSrc);
|
|
|
|
RCODE flmStatUpdate( // Source: flmstat.cpp
|
|
SFLM_STATS * pSrcStats);
|
|
|
|
void flmFreeSavedQueries( // Source: flmstat.cpp
|
|
FLMBOOL bMutexAlreadyLocked);
|
|
|
|
void flmSaveQuery( // Source: flmstat.cpp
|
|
F_Query * pQuery);
|
|
|
|
RCODE flmStatCopy( // Source: flmstat.cpp
|
|
SFLM_STATS * pDestStats,
|
|
SFLM_STATS * pSrcStats);
|
|
|
|
SFLM_BLOCKIO_STATS * flmGetBlockIOStatPtr(// Source: flmstat.cpp
|
|
SFLM_DB_STATS * pDbStats,
|
|
SFLM_LFILE_STATS * pLFileStats,
|
|
FLMBYTE * pucBlk);
|
|
|
|
void flmAddElapTime( // Source: flmstat.cpp
|
|
F_TMSTAMP * pStartTime,
|
|
FLMUINT64 * pui64ElapMilli);
|
|
|
|
/****************************************************************************
|
|
Inline Functions
|
|
****************************************************************************/
|
|
|
|
/*
|
|
Desc: This routine updates statistics from one DISKIO_STAT structure into
|
|
another.
|
|
*/
|
|
FINLINE void flmUpdateDiskIOStats(
|
|
SFLM_DISKIO_STAT * pDest,
|
|
SFLM_DISKIO_STAT * pSrc)
|
|
{
|
|
pDest->ui64Count += pSrc->ui64Count;
|
|
pDest->ui64TotalBytes += pSrc->ui64TotalBytes;
|
|
pDest->ui64ElapMilli += pSrc->ui64ElapMilli;
|
|
}
|
|
|
|
FINLINE void flmUpdateCountTimeStats(
|
|
F_COUNT_TIME_STAT * pDest,
|
|
F_COUNT_TIME_STAT * pSrc)
|
|
{
|
|
pDest->ui64Count += pSrc->ui64Count;
|
|
pDest->ui64ElapMilli += pSrc->ui64ElapMilli;
|
|
}
|
|
|
|
#endif // ifdef FLMSTAT_H
|