00001 #include "cmwfwDeviceAdapter.h"
00002 #include "cmwfwDeviceServer.h"
00003 #include "cmwfwIOPMapper.h"
00004
00005
00006
00007 #define FILE "source file:cmwfwIOPMapper.cc"
00008 #define ID "Contact Steen JENSEN, PS/CO"
00009 #define PROGRAM "Middleware server framework"
00010 #define T(a,b,c,d,e) TRACE(a,"%s(%s): %s %s %s %s\n",myname,FILE,b,c,d,e)
00011 #define E(a,b,c,d) ERROR("%s:%s(%s):ERROR: %s %s %s %s - %s\n",PROGRAM,myname,FILE,a,b,c,d,ID)
00012
00013
00014
00019 bool cmwfwIOPMapper::ThereCanBeOnlyOne = 0;
00020 cmwfwIOPMapper::cmwfwIOPMapper(){
00021 char* myname = "cmwfwIOPMapper::cmwfwIOPMapper";
00022 T(CMWFW_TRACE_CALLS,"Entering","","","");
00023 T(CMWFW_TRACE_SERVER,"Constructing singleton","","","");
00024
00025
00026 if(ThereCanBeOnlyOne){
00027 E("instance already exists","","","");
00028 exit(-1);
00029 };
00030 ThereCanBeOnlyOne = true;
00031 srv_reg = 0;
00032 adp_reg = 0;
00033
00034 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00035 };
00036
00041 cmwfwIOPMapper::~cmwfwIOPMapper(){
00042 char* myname = "cmwfwIOPMapper::~cmwfwIOPMapper";
00043 T(CMWFW_TRACE_CALLS,"Entering","","","");
00044 T(CMWFW_TRACE_SERVER,"Destroying singleton","","","");
00045 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00046 };
00047
00048
00053 cmwfwDeviceServer* cmwfwIOPMapper::getServer(const cmwfwIOPoint& iop){
00054 char* myname = "cmwfwIOPMapper::getServer";
00055 T(CMWFW_TRACE_CALLS,"Entering","","","");
00056
00057 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00058 return srv_reg;
00059 };
00060
00065 cmwfwDeviceAdapter* cmwfwIOPMapper::getAdapter(const cmwfwIOPoint& iop){
00066 char* myname = "cmwfwIOPMapper::getAdapter";
00067 T(CMWFW_TRACE_CALLS,"Entering","","","");
00068
00069 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00070 return adp_reg;
00071 };
00072
00073
00074
00079 void cmwfwIOPMapper::reg(const cmwfwIOPoint& iop,
00080 cmwfwDeviceServer& srv){
00081 char* myname = "cmwfwIOPMapper::reg - server";
00082 T(CMWFW_TRACE_CALLS,"Entering","","","");
00083
00084 srv_reg = &srv;
00085
00086 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00087 };
00088
00093 void cmwfwIOPMapper::reg(const cmwfwIOPoint& iop,
00094 cmwfwDeviceAdapter& adp){
00095 char* myname = "cmwfwIOPMapper::reg - adapter";
00096 T(CMWFW_TRACE_CALLS,"Entering","","","");
00097
00098 adp_reg = &adp;
00099
00100 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00101 };
00102
00103
00108 void cmwfwIOPMapper::reg(cmwfwDeviceServer& srv){
00109 char* myname = "cmwfwIOPMapper::reg";
00110 T(CMWFW_TRACE_CALLS,"Entering","","","");
00111 T(CMWFW_TRACE_SERVER,"Server registration received","","","");
00112
00113 srv_reg = &srv;
00114
00115 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00116 };
00117
00122 void cmwfwIOPMapper::reg(cmwfwDeviceAdapter& adp){
00123 char* myname = "cmwfwIOPMapper::reg";
00124 T(CMWFW_TRACE_CALLS,"Entering","","","");
00125 T(CMWFW_TRACE_SERVER,"Adapter registration received","","","");
00126
00127 adp_reg = &adp;
00128
00129 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00130 };
00131
00132
00133
00138 void cmwfwIOPMapper::unreg(const cmwfwIOPoint& iop,
00139 cmwfwDeviceServer& srv){
00140 char* myname = "cmwfwIOPMapper::unreg - server";
00141 T(CMWFW_TRACE_CALLS,"Entering","","","");
00142 T(CMWFW_TRACE_SERVER,"Unregistering server","","","");
00143
00144 srv_reg = 0;
00145
00146 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00147 };
00148
00153 void cmwfwIOPMapper::unreg(const cmwfwIOPoint& iop,
00154 cmwfwDeviceAdapter& adp){
00155 char* myname = "cmwfwIOPMapper::unreg - adapter";
00156 T(CMWFW_TRACE_CALLS,"Entering","","","");
00157 T(CMWFW_TRACE_SERVER,"Unregistering adapter","","","");
00158
00159 adp_reg = 0;
00160
00161 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00162 };
00163
00164
00169 void cmwfwIOPMapper::unreg(cmwfwDeviceServer& srv){
00170 char* myname = "cmwfwIOPMapper::unreg";
00171 T(CMWFW_TRACE_CALLS,"Entering","","","");
00172 T(CMWFW_TRACE_SERVER,"Unregistering server","","","");
00173
00174 srv_reg = 0;
00175
00176 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00177 };
00178
00183 void cmwfwIOPMapper::unreg(cmwfwDeviceAdapter& adp){
00184 char* myname = "cmwfwIOPMapper::unreg";
00185 T(CMWFW_TRACE_CALLS,"Entering","","","");
00186 T(CMWFW_TRACE_SERVER,"Unregistering adapter","","","");
00187
00188 adp_reg = 0;
00189
00190 T(CMWFW_TRACE_CALLS,"Returning - all ok","","","");
00191 };
00192
00193
00194 cmwfwIOPMapper framework_iop_mapper;
00195
00196