@ -58,7 +58,6 @@ void CFileError::serial(NLMISC::IStream &stream) throw (NLMISC::EStream)
void CFileStatus : : serial ( NLMISC : : IStream & stream ) throw ( NLMISC : : EStream )
void CFileStatus : : serial ( NLMISC : : IStream & stream ) throw ( NLMISC : : EStream )
{
{
uint version = stream . serialVersion ( 2 ) ;
uint version = stream . serialVersion ( 2 ) ;
// if (version >= 3) stream.serial(LastRemoved); else LastRemoved = 0;
stream . serial ( FirstSeen ) ;
stream . serial ( FirstSeen ) ;
stream . serial ( LastChangedReference ) ;
stream . serial ( LastChangedReference ) ;
if ( version > = 2 ) stream . serial ( LastFileSizeReference ) ; else LastFileSizeReference = 0 ;
if ( version > = 2 ) stream . serial ( LastFileSizeReference ) ; else LastFileSizeReference = 0 ;
@ -94,6 +93,13 @@ void CProcessResult::clear()
FileResults . clear ( ) ;
FileResults . clear ( ) ;
}
}
void CFileOutput : : serial ( NLMISC : : IStream & stream ) throw ( NLMISC : : EStream )
{
uint version = stream . serialVersion ( 1 ) ;
stream . serial ( BuildStart ) ;
stream . serialCont ( MacroPaths ) ;
}
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
@ -103,9 +109,9 @@ std::string CMetadataStorage::getStatusPath(const std::string &file)
return CWorkspaceStorage : : getMetaFilePath ( file , PIPELINE_DATABASE_STATUS_SUFFIX ) ;
return CWorkspaceStorage : : getMetaFilePath ( file , PIPELINE_DATABASE_STATUS_SUFFIX ) ;
}
}
bool CMetadataStorage : : readStatus ( CFileStatus & status , const std : : string & p ath)
bool CMetadataStorage : : readStatus ( CFileStatus & status , const std : : string & metaP ath)
{
{
if ( ! NLMISC : : CFile : : fileExists ( p ath) )
if ( ! NLMISC : : CFile : : fileExists ( metaP ath) )
{
{
status . FirstSeen = 0 ;
status . FirstSeen = 0 ;
status . LastChangedReference = 0 ;
status . LastChangedReference = 0 ;
@ -115,26 +121,26 @@ bool CMetadataStorage::readStatus(CFileStatus &status, const std::string &path)
return false ;
return false ;
}
}
nlassert ( ! NLMISC : : CFile : : isDirectory ( p ath) ) ;
nlassert ( ! NLMISC : : CFile : : isDirectory ( metaP ath) ) ;
NLMISC : : CIFile is ( p ath, false ) ;
NLMISC : : CIFile is ( metaP ath, false ) ;
status . serial ( is ) ;
status . serial ( is ) ;
is . close ( ) ;
is . close ( ) ;
return true ;
return true ;
}
}
void CMetadataStorage : : writeStatus ( const CFileStatus & status , const std : : string & p ath)
void CMetadataStorage : : writeStatus ( const CFileStatus & status , const std : : string & metaP ath)
{
{
NLMISC : : COFile os ( p ath, false , false , true ) ;
NLMISC : : COFile os ( metaP ath, false , false , true ) ;
const_cast < CFileStatus & > ( status ) . serial ( os ) ;
const_cast < CFileStatus & > ( status ) . serial ( os ) ;
os . flush ( ) ;
os . flush ( ) ;
os . close ( ) ;
os . close ( ) ;
}
}
void CMetadataStorage : : eraseStatus ( const std : : string & p ath)
void CMetadataStorage : : eraseStatus ( const std : : string & metaP ath)
{
{
NLMISC : : CFile : : deleteFile ( p ath) ;
NLMISC : : CFile : : deleteFile ( metaP ath) ;
}
}
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
@ -147,27 +153,27 @@ std::string CMetadataStorage::getResultPath(const std::string &projectName, cons
std : : string resultPath = CWorkspaceStorage : : getMetaDirectoryPath (
std : : string resultPath = CWorkspaceStorage : : getMetaDirectoryPath (
CWorkspaceStorage : : getProjectDirectory ( projectName ) )
CWorkspaceStorage : : getProjectDirectory ( projectName ) )
+ lwPluginName + PIPELINE_DATABASE_RESULT_SUFFIX ;
+ lwPluginName + PIPELINE_DATABASE_RESULT_SUFFIX ;
nldebug ( " Result p ath: '%s'" , resultPath . c_str ( ) ) ;
nldebug ( " Result metaP ath: '%s'" , resultPath . c_str ( ) ) ;
return resultPath ;
return resultPath ;
}
}
void CMetadataStorage : : readProcessResult ( CProcessResult & result , const std : : string & p ath)
void CMetadataStorage : : readProcessResult ( CProcessResult & result , const std : : string & metaP ath)
{
{
if ( ! NLMISC : : CFile : : fileExists ( p ath) )
if ( ! NLMISC : : CFile : : fileExists ( metaP ath) )
{
{
nlwarning ( " Process running for the first time, this may take a long time " ) ;
nlwarning ( " Process running for the first time, this may take a long time " ) ;
result . clear ( ) ;
result . clear ( ) ;
return ;
return ;
}
}
NLMISC : : CIFile is ( p ath, false ) ;
NLMISC : : CIFile is ( metaP ath, false ) ;
result . serial ( is ) ;
result . serial ( is ) ;
is . close ( ) ;
is . close ( ) ;
}
}
void CMetadataStorage : : writeProcessResult ( const CProcessResult & result , const std : : string & p ath)
void CMetadataStorage : : writeProcessResult ( const CProcessResult & result , const std : : string & metaP ath)
{
{
NLMISC : : COFile os ( p ath, false , false , true ) ;
NLMISC : : COFile os ( metaP ath, false , false , true ) ;
const_cast < CProcessResult & > ( result ) . serial ( os ) ;
const_cast < CProcessResult & > ( result ) . serial ( os ) ;
os . flush ( ) ;
os . flush ( ) ;
os . close ( ) ;
os . close ( ) ;
@ -177,6 +183,48 @@ void CMetadataStorage::writeProcessResult(const CProcessResult &result, const st
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
std : : string CMetadataStorage : : getOutputPath ( const std : : string & file , const std : : string & projectName , const std : : string & pluginName )
{
std : : string lwProjectName = NLMISC : : toLower ( projectName ) ;
std : : string lwPluginName = NLMISC : : toLower ( pluginName ) ;
return CWorkspaceStorage : : getMetaFilePath ( file , std : : string ( " . " ) + lwProjectName + " . " + lwPluginName + PIPELINE_DATABASE_OUTPUT_SUFFIX ) ;
}
bool CMetadataStorage : : readOutput ( CFileOutput & output , const std : : string & metaPath )
{
if ( ! NLMISC : : CFile : : fileExists ( metaPath ) )
{
output . BuildStart = 0 ;
output . MacroPaths . clear ( ) ;
return false ;
}
nlassert ( ! NLMISC : : CFile : : isDirectory ( metaPath ) ) ;
NLMISC : : CIFile is ( metaPath , false ) ;
output . serial ( is ) ;
is . close ( ) ;
return true ;
}
void CMetadataStorage : : writeOutput ( const CFileOutput & output , const std : : string & metaPath )
{
NLMISC : : COFile os ( metaPath , false , false , true ) ;
const_cast < CFileOutput & > ( output ) . serial ( os ) ;
os . flush ( ) ;
os . close ( ) ;
}
void CMetadataStorage : : eraseOutput ( const std : : string & metaPath )
{
NLMISC : : CFile : : deleteFile ( metaPath ) ;
}
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
} /* namespace PIPELINE */
} /* namespace PIPELINE */
/* end of file */
/* end of file */