00001 #include "ScanRequest.h"
00002 #include "CalibrationController.h"
00003 #include "RequestException.h"
00004
00005 namespace SctCalibrationController {
00006 namespace Ipc {
00007
00008 ScanRequestImpl::ScanRequestImpl() : IPCCallback(&CalibrationController::getServer()),
00009 m_clockByTwo(false), m_width(768){
00010 }
00011
00012 ilu_Boolean ScanRequestImpl::isRaw(Sct_CalibrationControllerStatus *_status) {
00013 return isRaw();
00014 }
00015
00016 ilu_Boolean ScanRequestImpl::clockByTwo(Sct_CalibrationControllerStatus *_status) {
00017 return clockByTwo();
00018 }
00019
00020 ilu_Boolean ScanRequestImpl::clockByTwo() {
00021 return m_clockByTwo;
00022 }
00023
00024 long ScanRequestImpl::width() {
00025 return m_width;
00026 }
00027
00028 void ScanRequestImpl::setWidth(long value) {
00029 m_width=value;
00030 }
00031
00032 long ScanRequestImpl::width(Sct_CalibrationControllerStatus *_status) {
00033 return width();
00034 }
00035
00036 void ScanRequestImpl::setWidth(Sct_CalibrationControllerStatus *_status, long value) {
00037 setWidth(value);
00038 }
00039
00040 void ScanRequestImpl::setClockByTwo(Sct_CalibrationControllerStatus *_status, ilu_Boolean value) {
00041 setClockByTwo(value);
00042 }
00043
00044 void ScanRequestImpl::setClockByTwo(ilu_Boolean value) {
00045 m_clockByTwo=value;
00046 }
00047
00048 ilu_Boolean ScanRequestImpl:: configureModules(Sct_CalibrationControllerStatus *_status){
00049 return configureModules();
00050 }
00051
00052 ilu_Boolean ScanRequestImpl::configureModules(){
00053 return false;
00054 }
00055
00056 long ScanRequestImpl::delay(Sct_CalibrationControllerStatus *_status){
00057 return delay();
00058 }
00059
00060 long ScanRequestImpl::delay(){
00061 return 1;
00062 }
00063
00064 Sct_SctApi_T_Scan* ScanRequestImpl::getScan(){
00065 m_scan->incRef();
00066 return m_scan;
00067 }
00068
00069 Sct_SctApi_T_Scan* ScanRequestImpl::getScan(Sct_CalibrationControllerStatus *_status){
00070 return getScan();
00071 }
00072
00073 void ScanRequestImpl::setScan(Sct_SctApi_T_Scan* scan){
00074 m_scan=scan;
00075 }
00076
00077 ilu_Boolean ScanRequestImpl::isRaw(){
00078 return false;
00079 }
00080
00081 void ScanRequestImpl::setScan(Sct_CalibrationControllerStatus *_status, Sct_SctApi_T_Scan* scan){
00082 setScan(scan);
00083 }
00084
00085 ScanRequestAdapter::ScanRequestAdapter(Sct_CalibrationController_T_ScanRequest* req) : request(req) {
00086 }
00087
00088 ilu_Boolean ScanRequestAdapter::configureModules() {
00089 Sct_CalibrationControllerStatus status;
00090 ilu_Boolean config = request->configureModules(&status);
00091 if (status.returnCode != 0)
00092 throw RequestException(status.returnCode, "ScanRequestAdapter::configureModules failed", __FILE__, __LINE__);
00093 return config;
00094 }
00095
00096 ilu_Boolean ScanRequestAdapter::clockByTwo() {
00097 Sct_CalibrationControllerStatus status;
00098 ilu_Boolean config = request->clockByTwo(&status);
00099 if (status.returnCode != 0)
00100 throw RequestException(status.returnCode, "ScanRequestAdapter::clockByTwo failed", __FILE__, __LINE__);
00101 return config;
00102 }
00103
00104 void ScanRequestAdapter::setClockByTwo(ilu_Boolean value) {
00105 Sct_CalibrationControllerStatus status;
00106 request->setClockByTwo(&status, value);
00107 if (status.returnCode != 0)
00108 throw RequestException(status.returnCode, "ScanRequestAdapter::setClockByTwo failed", __FILE__, __LINE__);
00109 }
00110
00111 ilu_Boolean ScanRequestAdapter::isRaw() {
00112 Sct_CalibrationControllerStatus status;
00113 ilu_Boolean raw = request->isRaw(&status);
00114 if (status.returnCode != 0)
00115 throw RequestException(status.returnCode, "ScanRequestAdapter::setConfigureModules failed", __FILE__, __LINE__);
00116 return raw;
00117 }
00118
00119 long ScanRequestAdapter::delay() {
00120 Sct_CalibrationControllerStatus status;
00121 long delay = request->configureModules(&status);
00122 if (status.returnCode != 0)
00123 throw RequestException(status.returnCode, "ScanRequestAdapter::setConfigureModules failed", __FILE__, __LINE__);
00124 return delay;
00125 }
00126
00127 long ScanRequestAdapter::width() {
00128 Sct_CalibrationControllerStatus status;
00129 long width = request->width(&status);
00130 if (status.returnCode != 0)
00131 throw RequestException(status.returnCode, "ScanRequestAdapter::setConfigureModules failed", __FILE__, __LINE__);
00132 return width;
00133 }
00134
00135 void ScanRequestAdapter::setWidth(long width) {
00136 Sct_CalibrationControllerStatus status;
00137 request->setWidth(&status, width);
00138 if (status.returnCode != 0)
00139 throw RequestException(status.returnCode, "ScanRequestAdapter::setConfigureModules failed", __FILE__, __LINE__);
00140 }
00141
00142 Sct_SctApi_T_Scan* ScanRequestAdapter::getScan() {
00143 Sct_CalibrationControllerStatus status;
00144 Sct_SctApi_T_Scan* scan = request->getScan(&status);
00145 if (status.returnCode != 0)
00146 throw RequestException(status.returnCode, "ScanRequestAdapter::getScan failed", __FILE__, __LINE__);
00147 return scan;
00148 }
00149
00150 void ScanRequestAdapter::setScan(Sct_SctApi_T_Scan* scan) {
00151 Sct_CalibrationControllerStatus status;
00152 request->setScan(&status, scan);
00153 if (status.returnCode != 0)
00154 throw RequestException(status.returnCode, "ScanRequestAdapter::setScan failed", __FILE__, __LINE__);
00155 }
00156
00157 }
00158 }