BOOL CDurableFile::Commit(void)
{
	BOOL		bResult;

	if (!IsBegun())
	{
		return FALSE;
	}

	if (mcLogFile.GetNumCommands() == 0)
	{
		InitBasic();
		return TRUE;
	}

	mcPrimaryFile.Close();

	bResult = mcLogFile.Commit();
	if (!bResult)
	{
		return gcLogger.Error2(__METHOD__, " Commit durable file [", mszFileName.Text(), "] failed.", NULL);
	}

	InitBasic();
	return TRUE;
}
void CDurableFile::Init(CDurableFileController* pcController, char* szFileName, char* szRewriteName)
{
	mbAddedToController = FALSE;
	mpcController = pcController;
	InitBasic();

	if (!StrEmpty(szFileName))
	{
		mcPrimaryDiskFile.Init(szFileName);
		mcLogFile.Init(&mcPrimaryDiskFile);
		mcPrimaryFile.Init(&mcLogFile);
		mszFileName.Init(mcPrimaryDiskFile.mszFileName);
	}
	else
	{
		gcLogger.Error2(__METHOD__, " Primary DurableFile file name is NULL.", NULL);
	}

	if (!StrEmpty(szRewriteName))
	{
		mcRewriteDiskFile.Init(szRewriteName);
		mcRewriteFile.Init(&mcRewriteDiskFile);
		mszRewriteName.Init(mcRewriteDiskFile.mszFileName);
	}
	else
	{
		memset(&mszRewriteName, 0, sizeof(CChars));
		memset(&mcRewriteFile, 0, sizeof(CFileBasic));
	}
}
Esempio n. 3
0
/* ========================================================================= */
int InitOSSCoreData(void)
{
   int rv = 0;
   
   rv |= InitBasic();

   return(rv);
}
Esempio n. 4
0
/* ========================================================================= */
int InitOSSHardwareData(void)
{
   int rv = 0;
   
   /* The same struct is used in two trees. InitBasic() can be called twice
      without issue. */
   rv |= InitBasic();

   return(rv);
}