00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef INCL_SYNCSOURCEREPORT
00020 #define INCL_SYNCSOURCEREPORT
00021
00025 #include "base/fscapi.h"
00026 #include "base/Log.h"
00027 #include "base/util/utils.h"
00028 #include "spds/constants.h"
00029 #include "event/constants.h"
00030 #include "spds/ItemReport.h"
00031
00032
00034 typedef enum SourceState{
00035 SOURCE_ACTIVE = 0,
00036 SOURCE_INACTIVE = 1,
00037 SOURCE_ERROR = 2,
00038 } SourceState;
00039
00040
00047 class SyncSourceReport {
00048
00049 private:
00050
00051
00052 int lastErrorCode;
00053
00054
00055 char* lastErrorMsg;
00056
00057
00058 char* sourceName;
00059
00060
00061
00062
00063
00064 SourceState state;
00065
00066
00067 ArrayList* clientAddItems;
00068 ArrayList* clientModItems;
00069 ArrayList* clientDelItems;
00070
00071
00072 ArrayList* serverAddItems;
00073 ArrayList* serverModItems;
00074 ArrayList* serverDelItems;
00075
00076
00077
00078 bool isSuccessful(const int status);
00079
00080
00081 void initialize();
00082
00083
00084
00085
00086
00087 void assign(const SyncSourceReport& ssr);
00088
00089
00090 public:
00091
00092 SyncSourceReport(const char* name = NULL);
00093 SyncSourceReport(SyncSourceReport& ssr);
00094 virtual ~SyncSourceReport();
00095
00097 const int getLastErrorCode() const;
00098
00100 const SourceState getState() const;
00101
00103 const char* getLastErrorMsg() const;
00104
00106 const char* getSourceName() const;
00107
00108 void setLastErrorCode(const int code);
00109 void setState (const SourceState s);
00110 void setLastErrorMsg (const char* msg);
00111 void setSourceName (const char* name);
00112
00117 bool checkState();
00118
00119
00128 ItemReport* getItemReport(const char* target, const char* command, int index);
00129
00130
00138 int getItemReportCount (const char* target, const char* command);
00139
00140 int getItemReportSuccessfulCount (const char* target, const char* command);
00141
00142 int getItemReportFailedCount (const char* target, const char* command);
00143
00144 int getItemReportAlreadyExistCount(const char* target, const char* command);
00145
00146
00159 void addItem(const char* target, const char* command, const WCHAR* ID, const int status, const WCHAR* statusMessage);
00160
00161
00162
00171 ArrayList* getList(const char* target, const char* command) const;
00172
00176 static const char* const targets[];
00177
00181 static const char* const commands[];
00182
00186 SyncSourceReport& operator = (const SyncSourceReport& ssr) {
00187 assign(ssr);
00188 return *this;
00189 }
00190 };
00191
00194 #endif
00195