#ifndef __TopGroupRec_h
#define __TopGroupRec_h

#include "VirtualTableManager.h"	// For FCVirtualTableManager.

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
#define SUPER_CLASS FCVirtualTableManager

class FCDynamicDb;

/////////////////////////////////////////////////////////////////////////////
// FCTopGroupRec

class FCTopGroupRec : public SUPER_CLASS
{
protected:
typedef SUPER_CLASS BASE_CLASS;

public:
	FCTopGroupRec (const HString& hstrTopDirPath);
	virtual ~FCTopGroupRec ();
// 06.02.12 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual FCVirtualTable*	QueryTable (const FCTableIds& vTableIds);

friend class FCDynamicDb;
protected:
	virtual void	DoTransCommand (BYTE byCommand, const BYTE*& pTransaction);

	virtual FCVirtualWriteTable*	CreateVirtualTable ();
	virtual FCTableRec*	UpdateVirtualTable (const FCTableIds& vTableIds);

	virtual void	GetReadLockInfo (	GUID& guidTable,
										DWORD& dwDeleteIdentifier,
										DWORD& dwAppendIdentifier,
										const FCTableIds& vTableIds) const;

	virtual void	SetLockGuidAndIdentifier (	const FCTableIds& vTableIds,
												const GUID& guidTable,
												DWORD dwDeleteIdentifier,
												DWORD dwAppendIdentifier);
//----- 06.02.07 Fukushiro M. _xZkqqHx_jFmPiNfIjBeP_xHqqkZx_ ()-----
//	virtual void	IncrementLockGuidAndIdentifier (const FCTableIds& vTableIds,
//													BOOL bIsIncDeleteId,
//													BOOL bIsIncAppendId);
//----- 06.02.07 Fukushiro M. _xZkqqHx_jFmPiNfIiMoD_xHqqkZx_ ()-----
	virtual void SetLockIdentifier (const FCTableIds& vTableIds,
									DWORD dwDeleteIdentifier,
									DWORD dwAppendIdentifier);
//----- 06.02.07 Fukushiro M. _xZkqqHx_jFmPiNfIiPeJ_xHqqkZx_ ()-----

	virtual void	MoveWriteRecordToReal (FCGroupRec* pGroupRec);

protected:
	BYTEVector	m_vTransaction;
}; // struct FCTopGroupRec.

#endif//__TopGroupRec_h
