CalibrationController.cpp

00001 #include "CalibrationController.h"
00002 #include "ScanLibrary.h"
00003 #include "TestLibrary.h"
00004 #include "SequenceLibrary.h"
00005 #include "SequenceRequest.h"
00006 #include "TestRequest.h"
00007 #include "Sct/SctNames.h"
00008 #include <ipc/server.h>
00009 
00010 #include <iostream>
00011 
00012 using namespace std;
00013 using namespace Sct;
00014 
00015 namespace SctCalibrationController {
00016 namespace Ipc {
00017     
00018 CalibrationController::CalibrationController() : 
00019   IPCNamedObject<POA_Sct_CalibrationController::CalibrationController, ipc::multi_thread>(SctNames::getPartition(),
00020                                               Sct_CalibrationController::CalibrationController::instanceName) {
00021     cout << "CalibrationController::CalibrationController()" << endl;
00022 }
00023 
00024 CalibrationController::~CalibrationController() {
00025     cout << "CalibrationController::~CalibrationController()" << endl;
00026 }
00027 
00028   /*
00029     IPCServer& CalibrationController::getServer() {
00030     static IPCServer server (Sct_CalibrationController_C_CalibrationController_serverName, SctNames::getPartition());
00031     return server;
00032     }
00033   */
00034 
00035   /*
00036 Sct_CalibrationController::ScanLibrary_ptr CalibrationController::getScanLibrary_corba () {
00037     cout << "External get Scan library" << endl;
00038     ScanLibrary& sl = getScanLibrary_nonCorba();
00039     return sl._this();
00040 }
00041 
00042 Sct_CalibrationController::TestLibrary_ptr CalibrationController::getTestLibrary_corba () {
00043     cout << "External get Test library" << endl;
00044     TestLibrary& tl = getTestLibrary_nonCorba();
00045     tl.incRef();
00046     return &tl;
00047 }
00048 
00049 Sct_CalibrationController::SequenceLibrary * CalibrationController::getSequenceLibrary_corba () {
00050     cout << "External Get Sequence Library" << endl;
00051     SequenceLibrary& sl = getSequenceLibrary_nonCorba();
00052     sl.incRef();
00053     return &sl;
00054 }
00055 
00056 //We need a null deleter for the internal XXXRequest objects
00057 
00058 template<typename T>
00059 class NullDeleter {
00060 public:
00061     void operator() (T* t) throw () {}
00062 };
00063 
00064 void CalibrationController::updateWith (Sct_CalibrationControllerStatus *_status, bool force, ilu_T_CString testResultInIs){
00065   updateWith(testResultInIs, force);
00066 }
00067 
00068 void CalibrationController::doScan (Sct_CalibrationController::ScanRequest * s) {
00069   shared_ptr<ScanRequest> req (dynamic_cast<ScanRequest*>(s), NullDeleter<ScanRequest>());
00070   if (!req) {
00071     req = shared_ptr<ScanRequest>(new ScanRequestAdapter(s));
00072   }
00073   doScan(req);
00074 }
00075 
00076 void CalibrationController::doTest (class Sct_CalibrationController::TestRequest *t) {
00077     shared_ptr<TestRequest> req (dynamic_cast<TestRequest*>(t), NullDeleter<TestRequest>());
00078     if (!req) {
00079     req = shared_ptr<TestRequest>(new TestRequestAdapter(t));
00080     }
00081     
00082     doTest(req); 
00083 }
00084 
00085 void CalibrationController::doSequence (class Sct_CalibrationController::SequenceRequest * r) {
00086     shared_ptr<SequenceRequest> req (dynamic_cast<SequenceRequest*>(r), NullDeleter<SequenceRequest>());
00087     if (!req) {
00088     req = shared_ptr<SequenceRequest>(new SequenceRequestAdapter(r));
00089     }
00090     doSequence(req);
00091 }
00092 
00093 void CalibrationController::abort () {
00094     abort();
00095 }
00096 
00097 Sct_SctApi::Scan * CalibrationController::getScan (ilu_Cardinal runNumber, ilu_Cardinal scanNumber) {
00098     return getScan(runNumber, scanNumber);
00099 }
00100   */
00101 
00102 }
00103 }

Generated on Mon Feb 6 14:01:17 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6