123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /* Copyright (c) 2002-2012 Croteam Ltd.
- This program is free software; you can redistribute it and/or modify
- it under the terms of version 2 of the GNU General Public License as published by
- the Free Software Foundation
- This program 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 General Public License for more details.
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
- #ifndef SE_INCL_DEPENDENCY_H
- #define SE_INCL_DEPENDENCY_H
- #ifdef PRAGMA_ONCE
- #pragma once
- #endif
- // adjust file path automatically for application path prefix
- void AdjustFilePath_t(CTFileName &fnm);
- class CDependInfo {
- public:
- // atributes
- CListNode di_Node;
- CTFileName di_fnFileName;
- time_t di_tTime;
- CTFileName di_fnParent;
- // default constructor
- CDependInfo( CTFileName fnFileName, CTFileName fnParent);
- // if this file is updated
- BOOL IsFileOnDiskUpdated(void);
- // if time of given file is same
- inline BOOL IsUpdated(const CDependInfo &diOther) {
- return( diOther.di_tTime == di_tTime);};
- // if given file is older
- inline BOOL IsOlder(const CDependInfo &diOther) {
- return( di_tTime < diOther.di_tTime);};
- // Comparison operator.
- inline BOOL operator==(const CDependInfo &diOther) const {
- return( diOther.di_fnFileName == di_fnFileName);};
- // read and write opertaions
- inline void Read_t( CTStream *istrFile) {
- *istrFile >> di_fnFileName;
- istrFile->Read_t( &di_tTime, sizeof( time_t));
- };
- inline void Write_t( CTStream *ostrFile) const {
- *ostrFile << di_fnFileName;
- ostrFile->Write_t( &di_tTime, sizeof( time_t));
- };
- };
- class CDependencyList {
- public:
- CListHead dl_ListHead;
- // operations
- void ExtractDependencies();
- // remove updated files from list
- void RemoveUpdatedFiles();
- // create list from ascii file
- void ImportASCII( CTFileName fnAsciiFile);
- // export list members into ascii file in form sutable for archivers
- void ExportASCII_t( CTFileName fnAsciiFile);
- // substracts given list from this
- void Substract( CDependencyList &dlToSubstract);
- // extract translation strings from all files in list
- void ExtractTranslations_t( const CTFileName &fnTranslations);
- // clear dependency list
- void Clear( void);
- // if given file allready has its own DependInfo object linked in list
- BOOL ExistsInList(CListHead &lh, CTFileName fnTestName) const;
- // read and write opertaions
- void Read_t( CTStream *istrFile); // throw char *
- void Write_t( CTStream *ostrFile); // throw char *
- };
- #endif /* include-once check. */
|