#ifndef ANALISYS_HPP #define ANALISYS_HPP #include "AnalisysResults.hpp" #include "dspecup.hpp" class CSVDSReader; struct sChangeList; class Analisys { public: Analisys( const CSVDSReader& csvReader409_, const CSVDSReader& csvReaderIntl_, const String& ldapPrefix_, const String& rootContainerDn_, AnalisysResults &res, const String &reportName_=L"", void *caleeStruct_=NULL, progressFunction stepIt_=NULL, progressFunction totalSteps_=NULL ); HRESULT run(); private: const CSVDSReader& csvReader409; const CSVDSReader& csvReaderIntl; String ldapPrefix; String rootContainerDn; AnalisysResults& results; String reportName; void *caleeStruct; progressFunction stepIt; progressFunction totalSteps; // add entry to result.createContainers if container is not present // also returns flag isPresent HRESULT dealWithContainer( const long locale, bool &isPresent); // add entries to results.conflictingXPObjects or // results.createXPObject as necessary HRESULT dealWithXPObjects(const long locale); // add entries to results.createW2KObjects and // and results.objectActions as necessary HRESULT dealWithW2KObjects(const long locale); // adds ordAndGuid to the property if Guid is not already there. HRESULT addGuid ( IDirectoryObject *iDirObj, const int locale, const wchar_t *object, const wchar_t *property, const wchar_t *ordAndGuid ); // adds all csv values still not on the property HRESULT addAllCsvValues ( IDirectoryObject *iDirObj, const long locale, const wchar_t *object, const wchar_t *property ); // adds value to the property if it is not already there. HRESULT addValue ( IDirectoryObject *iDirObj, const int locale, const wchar_t *object, const wchar_t *property, const wchar_t *value ); HRESULT getCsvSingleValue ( const int locale, const wchar_t *object, const wchar_t *property, String &csvValue ); HRESULT replaceW2KSingleValue ( IDirectoryObject *iDirObj, const int locale, const wchar_t *object, const wchar_t *property, const wchar_t *value ); HRESULT getCsvMultipleValue ( const int locale, const wchar_t *object, const wchar_t *property, const wchar_t *value, String &csvValue, String &XPstart ); HRESULT replaceW2KMultipleValue( IDirectoryObject *iDirObj, const int locale, const wchar_t *object, const wchar_t *property, const wchar_t *value); // removes ordAndGuid from the property if Guid is there. HRESULT removeGuid( IDirectoryObject *iDirObj, const int locale, const wchar_t *object, const wchar_t *property, const wchar_t *ordAndGuid); // set previousSuccessfulRun reading from ADSI HRESULT setPreviousSuccessfullRun(); HRESULT checkChanges ( const long locale, const sChangeList& changes, IDirectoryObject *iDirObj ); HRESULT getADFirstValue ( IDirectoryObject *iDirObj, const String &property, String &value ); HRESULT isADStartValuePresent ( IDirectoryObject *iDirObj, const String &property, const String &valueStart, String &value ); HRESULT isADValuePresent ( IDirectoryObject *iDirObj, const String &property, const String &value ); HRESULT getADGuid ( IDirectoryObject *iDirObj, const String &property, const String &guidValue, String &guidFound ); HRESULT removeExtraneous ( IDirectoryObject *iDirObj, const int locale, const String &object, const String &property, const String &keeper ); HRESULT removeExtraneous ( IDirectoryObject *iDirObj, const int locale, const String &object, const String &property, const String &keeper, const String &start1, const String &start2 ); HRESULT reportObjects ( HANDLE file, const ObjectIdList &list, const String &header ); HRESULT reportContainers ( HANDLE file, const LongList &list, const String &header ); HRESULT reportActions ( HANDLE file, const ObjectActions &list, const String &header ); HRESULT reportValues ( HANDLE file, const SingleValueList &list, const String &header ); HRESULT createReport(const String& reportName); }; #endif