00001 #ifndef ARCHIVINGSERVICE_H
00002 #define ARCHIVINGSERVICE_H
00003
00004 #include <memory>
00005 #include <is/isinfo.h>
00006 #include "Archiving.hh"
00007
00008 namespace SctArchivingService {
00009
00010 class ArchivingWorkerGroup;
00011
00012 class ArchivingService : public IPCObject, public Archiving_T_ArchivingService {
00013 public:
00014 ArchivingService();
00015 void run();
00016 static void testDataISCallback(ISCallbackInfo * isc);
00017 static void controlDataISCallback(ISCallbackInfo * isc);
00018 static void rawScanResultISCallback(ISCallbackInfo * isc);
00019 static void fitScanResultISCallback(ISCallbackInfo * isc);
00020 static IPCServer& server();
00021 void archive(ISCallbackInfo * isc);
00022
00023 static ArchivingService& instance();
00024 static ArchivingService& initialize();
00025
00026
00027 virtual ilu_T_CString ping (ArchivingStatus *_status);
00028
00029 private:
00030 std::auto_ptr<ISInfoReceiver> infoReceiver;
00031 ArchivingWorkerGroup* group;
00032 static ArchivingService* service;
00033 bool scanSavedFlag;
00034 };
00035
00036 }
00037
00038 #endif //#ifndef ARCHIVINGSERVICE_H