conduitFriends.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 #ifndef CONDUITFRIENDS_H
00009 #define CONDUITFRIENDS_H
00010 
00011 #include <cstdio>
00012 #include <conduit.h>
00013 #include <statusCodes.h>
00014 
00018 struct change_alarmStatus
00019 {
00020         change_alarmStatus (const dbr_short_t  & new_alarmStatus): new_alarmStatus(new_alarmStatus){}
00021 
00022         void operator() (Conduit& c) {
00024                 c.alarmStatus =  new_alarmStatus;
00026         }
00027 
00028 private:
00029         dbr_short_t  new_alarmStatus;
00030 };
00031 struct change_alarmSeverity
00032 {
00033         change_alarmSeverity (const dbr_short_t  & new_alarmSeverity): new_alarmSeverity(new_alarmSeverity){}
00034 
00035         void operator() (Conduit& c) {
00037                 c.alarmSeverity =  new_alarmSeverity;
00039         }
00040 
00041 private:
00042         dbr_short_t  new_alarmSeverity;
00043 };
00044 struct change_epicsTimeStamp
00045 {
00046         change_epicsTimeStamp (const epicsTimeStamp  & new_epicsTimeStamp): new_epicsTimeStamp(new_epicsTimeStamp){}
00047 
00048         void operator() (Conduit& c) {
00050                 c.ts =  new_epicsTimeStamp;
00051                 //Do this to prevent overflow error in epicsTime time(ts) routines!
00052                 //This bad number can occur in timeouts
00053                 if(c.ts.nsec>1000000000) {c.ts.nsec=0;}
00055         }
00056 
00057 private:
00058         epicsTimeStamp  new_epicsTimeStamp;
00059 };
00060 
00061 
00065 struct change_accessRead
00066 {
00067     change_accessRead (const unsigned int  & new_accessRead): new_accessRead(new_accessRead){}
00068 
00069     void operator() (Conduit& c) {
00071         c.channelRegalia.accessRead =  new_accessRead;
00073     }
00074 
00075 private:
00076     unsigned int  new_accessRead;
00077 };
00078 
00079 
00083 struct change_accessWrite
00084 {
00085     change_accessWrite (const unsigned int  & new_accessWrite): new_accessWrite(new_accessWrite){}
00086 
00087     void operator() (Conduit& c) {
00089         c.channelRegalia.accessWrite =  new_accessWrite;
00091     }
00092 
00093 private:
00094     unsigned int  new_accessWrite;
00095 };
00096 
00097 
00102 struct change_accessRightsHandlerArgs
00103 {
00104     change_accessRightsHandlerArgs (const struct access_rights_handler_args & new_accessRightsHandlerArgs):
00105         new_accessRightsHandlerArgs(new_accessRightsHandlerArgs){}
00106 
00107     void operator() (Conduit& c) {
00108 
00110         c.channelRegalia.accessRead =  new_accessRightsHandlerArgs.ar.read_access;
00111         c.channelRegalia.accessWrite=  new_accessRightsHandlerArgs.ar.write_access;
00113     }
00114 
00115 private:
00116         access_rights_handler_args new_accessRightsHandlerArgs;
00117 };
00118 
00119 
00123 struct change_beamEventNo
00124 {
00125         change_beamEventNo (const unsigned long long  & new_beamEventNo): new_beamEventNo(new_beamEventNo){}
00126 
00127         void operator() (Conduit& c) {c.beamEventNo =  new_beamEventNo;}
00128 
00129 private:
00130         unsigned long long new_beamEventNo;
00131 };
00132 
00136 struct change_channelDeviceAttribute
00137 {
00138     change_channelDeviceAttribute (const ChannelDeviceAttribute  & new_channelDeviceAttribute):
00139             new_channelDeviceAttribute(new_channelDeviceAttribute){}
00140 
00141     void operator() (Conduit& c) {c.channelDeviceAttribute =  new_channelDeviceAttribute;}
00142 
00143 private:
00144     ChannelDeviceAttribute new_channelDeviceAttribute;
00145 };
00146 
00147 
00148 
00152 struct change_channelID
00153 {
00154     change_channelID (const chid & new_channelID): new_channelID(new_channelID){}
00155 
00156     void operator() (Conduit& c) {
00157         c.channelRegalia.channelID=new_channelID;
00158         c.channelID=new_channelID;
00159     }
00160 
00161 private:
00162     chid new_channelID;
00163 };
00164 
00165 
00166 
00170 struct change_channelGetActionWhenMonitorPolicy
00171 {
00172         change_channelGetActionWhenMonitorPolicy (
00173                 const ChannelGetActionWhenMonitorPolicy & new_channelGetActionWhenMonitorPolicy):
00174                 new_channelGetActionWhenMonitorPolicy(new_channelGetActionWhenMonitorPolicy){}
00175 
00176         void operator() (Conduit& c) {
00177             //
00178             c.channelGetActionWhenMonitorPolicy =  new_channelGetActionWhenMonitorPolicy;
00179         }
00180 private:
00181         ChannelGetActionWhenMonitorPolicy new_channelGetActionWhenMonitorPolicy;
00182 };
00183 
00184 
00188 struct change_channelGetCacheWaitPolicy
00189 {
00190         change_channelGetCacheWaitPolicy (
00191                 const ChannelGetCacheWaitPolicy & new_channelGetCacheWaitPolicy):
00192                 new_channelGetCacheWaitPolicy(new_channelGetCacheWaitPolicy){}
00193 
00194         void operator() (Conduit& c) {
00195             //
00196             c.channelGetCacheWaitPolicy =  new_channelGetCacheWaitPolicy;
00197         }
00198 private:
00199         ChannelGetCacheWaitPolicy new_channelGetCacheWaitPolicy;
00200 };
00201 
00202 
00203 
00204 
00205 
00209 struct change_hasNewData
00210 {
00211         change_hasNewData (const bool  & new_hasNewData): new_hasNewData(new_hasNewData){}
00212 
00213         void operator() (Conduit& c) {c.hasNewData =  new_hasNewData;}
00214 
00215 private:
00216         bool new_hasNewData;
00217 };
00218 
00219 
00220 
00224 struct change_channelRegalia
00225 {
00226     change_channelRegalia (const ChannelRegalia  & new_channelRegalia): new_channelRegalia(new_channelRegalia){}
00227 
00228     void operator() (Conduit& c) {c.channelRegalia =  new_channelRegalia;}
00229 
00230 private:
00231     ChannelRegalia new_channelRegalia;
00232 };
00233 
00234 
00238 struct change_channelRequestDataTypePolicy
00239 {
00240         change_channelRequestDataTypePolicy (
00241                 const ChannelRequestDataTypePolicy & new_channelRequestDataTypePolicy):
00242                 new_channelRequestDataTypePolicy(new_channelRequestDataTypePolicy){}
00243 
00244         void operator() (Conduit& c) {
00245             //
00246             c.channelRequestDataTypePolicy =  new_channelRequestDataTypePolicy;
00247         }
00248 private:
00249         ChannelRequestDataTypePolicy new_channelRequestDataTypePolicy;
00250 };
00251 
00252 
00253 
00257 struct change_channelRequestMetaCtrl
00258 {
00259         change_channelRequestMetaCtrl (const ChannelRequestMetaData & new_channelData):
00260                 new_channelData(new_channelData){}
00261 
00262         void operator() (Conduit& c) {
00263             //
00264             c.channelRequestMetaCtrl =  new_channelData;
00265         }
00266 private:
00267         ChannelRequestMetaData new_channelData;
00268 };
00269 
00270 
00271 
00275 struct change_channelRequestMetaCtrlClient
00276 {
00277         change_channelRequestMetaCtrlClient (const ChannelRequestMetaDataClient & new_channelData):
00278                 new_channelData(new_channelData){}
00279 
00280         void operator() (Conduit& c) {
00281             //
00282             c.channelRequestMetaCtrlClient =  new_channelData;
00283                                         
00284         }
00285 private:
00286         ChannelRequestMetaDataClient new_channelData;
00287 };
00288 
00289 
00290 
00291 
00292 
00296 struct change_channelRequestMetaData
00297 {
00298         change_channelRequestMetaData (const ChannelRequestMetaData & new_channelData):
00299                 new_channelData(new_channelData){}
00300 
00301         void operator() (Conduit& c) {
00302             //
00303                                                 
00304             c.channelRequestMetaData =  new_channelData;
00305                                         
00306         }
00307         
00308 private:
00309         ChannelRequestMetaData new_channelData;
00310 };
00311 
00312 
00313 
00317 struct change_channelRequestMetaDataClient
00318 {
00319         change_channelRequestMetaDataClient (const ChannelRequestMetaDataClient & new_channelData):
00320                 new_channelData(new_channelData){}
00321 
00322         void operator() (Conduit& c) {
00323             //
00324                                                 
00325             c.channelRequestMetaDataClient =  new_channelData;
00326                                 }               
00327 private:
00328         ChannelRequestMetaDataClient new_channelData;
00329 };
00330 
00331 
00332 
00336 struct change_channelRequestMetaPrimitive
00337 {
00338         change_channelRequestMetaPrimitive (const ChannelRequestMetaData & new_channelData):
00339                 new_channelData(new_channelData){}
00340 
00341         void operator() (Conduit& c) {
00342             //
00343             c.channelRequestMetaPrimitive =  new_channelData;
00344         }
00345 private:
00346         ChannelRequestMetaData new_channelData;
00347 };
00348 
00349 
00353 struct change_channelRequestPolicyGet
00354 {
00355         change_channelRequestPolicyGet (const ChannelRequestPolicy & new_ChannelRequestPolicy):
00356                 new_ChannelRequestPolicy(new_ChannelRequestPolicy){}
00357 
00358         void operator() (Conduit& c) {
00359             //This does a deep copy!
00360             c.channelRequestPolicyGet =  new_ChannelRequestPolicy;
00361         }
00362 private:
00363         ChannelRequestPolicy new_ChannelRequestPolicy;
00364 };
00365 
00366 
00370 struct change_channelRequestPolicyGetCtrl
00371 {
00372         change_channelRequestPolicyGetCtrl (const ChannelRequestPolicy & new_ChannelRequestPolicy):
00373                 new_ChannelRequestPolicy(new_ChannelRequestPolicy){}
00374 
00375         void operator() (Conduit& c) {
00376             //This does a deep copy!
00377             c.channelRequestPolicyGetCtrl =  new_ChannelRequestPolicy;
00378         }
00379 private:
00380         ChannelRequestPolicy new_ChannelRequestPolicy;
00381 };
00382 
00383 
00384 
00388 struct change_channelRequestPolicyPut
00389 {
00390         change_channelRequestPolicyPut (const ChannelRequestPolicy & new_ChannelRequestPolicy):
00391                 new_ChannelRequestPolicy(new_ChannelRequestPolicy){}
00392 
00393         void operator() (Conduit& c) {
00394             //This does a deep copy!
00395             c.channelRequestPolicyPut =  new_ChannelRequestPolicy;
00396         }
00397 private:
00398         ChannelRequestPolicy new_ChannelRequestPolicy;
00399 };
00400 
00401 
00402 
00403 
00407 struct change_channelRequestStatusGet
00408 {
00409     change_channelRequestStatusGet (const ChannelRequestStatus & new_ChannelRequestStatus):
00410                 new_ChannelRequestStatus(new_ChannelRequestStatus){}
00411 
00412     void operator() (Conduit& c) {
00413         //This does a deep copy!
00414 
00415         c.channelRequestStatusGet =  new_ChannelRequestStatus;
00416     }
00417 
00418 private:
00419     ChannelRequestStatus new_ChannelRequestStatus;
00420 };
00421 
00422 
00423 
00427 struct change_channelRequestStatusGetCtrl
00428 {
00429     change_channelRequestStatusGetCtrl (const ChannelRequestStatus & new_ChannelRequestStatus):
00430                 new_ChannelRequestStatus(new_ChannelRequestStatus){}
00431 
00432     void operator() (Conduit& c) {
00433         //This does a deep copy!
00434         c.channelRequestStatusGetCtrl =  new_ChannelRequestStatus;
00435     }
00436 private:
00437     ChannelRequestStatus new_ChannelRequestStatus;
00438 };
00439 
00440 
00444 struct change_channelRequestStatusGetSTSACK
00445 {
00446     change_channelRequestStatusGetSTSACK (const ChannelRequestStatus & new_ChannelRequestStatus):
00447                 new_ChannelRequestStatus(new_ChannelRequestStatus){}
00448 
00449     void operator() (Conduit& c) {
00450         //This does a deep copy!
00451         c.channelRequestStatusGetSTSACK =  new_ChannelRequestStatus;
00452     }
00453 private:
00454     ChannelRequestStatus new_ChannelRequestStatus;
00455 };
00456 
00457 
00458 
00462 struct change_channelRequestStatusGetClassName
00463 {
00464     change_channelRequestStatusGetClassName (const ChannelRequestStatus & new_ChannelRequestStatus):
00465                 new_ChannelRequestStatus(new_ChannelRequestStatus){}
00466 
00467     void operator() (Conduit& c) {
00468         //This does a deep copy!
00469         c.channelRequestStatusGetClassName  =  new_ChannelRequestStatus;
00470     }
00471 private:
00472     ChannelRequestStatus new_ChannelRequestStatus;
00473 };
00474 
00475 
00479 struct change_channelRequestStatusPut
00480 {
00481     change_channelRequestStatusPut (const ChannelRequestStatus & new_ChannelRequestStatus):
00482                 new_ChannelRequestStatus(new_ChannelRequestStatus){}
00483 
00484     void operator() (Conduit& c) {
00485         //This does a deep copy!
00486         c.channelRequestStatusPut =  new_ChannelRequestStatus;
00487     }
00488 private:
00489     ChannelRequestStatus new_ChannelRequestStatus;
00490 };
00491 
00492 
00493 
00494 
00498 struct change_channelTimeoutPolicyGet
00499 {
00500     change_channelTimeoutPolicyGet (const ChannelTimeoutPolicy & new_channelTimeoutPolicy):
00501                 new_channelTimeoutPolicy(new_channelTimeoutPolicy){}
00502 
00503     void operator() (Conduit& c) {
00504         //This does a deep copy!
00505         c.channelTimeoutPolicyGet =  new_channelTimeoutPolicy;
00506     }
00507 private:
00508     ChannelTimeoutPolicy new_channelTimeoutPolicy;
00509 };
00510 
00511 
00515 struct change_channelTimeoutPolicyPut
00516 {
00517     change_channelTimeoutPolicyPut (const ChannelTimeoutPolicy & new_channelTimeoutPolicy):
00518                 new_channelTimeoutPolicy(new_channelTimeoutPolicy){}
00519 
00520     void operator() (Conduit& c) {
00521     //This does a deep copy!
00522         c.channelTimeoutPolicyPut =  new_channelTimeoutPolicy;
00523     }
00524 private:
00525         ChannelTimeoutPolicy new_channelTimeoutPolicy;
00526 };
00527 
00528 
00529 
00533 struct change_dequePulseID
00534 {
00535         change_dequePulseID (const PVDataHolder  & new_pvd): new_pvd(new_pvd){}
00536 
00537         void operator() (Conduit& c) {
00538                                 
00539         
00540 
00541                                         try{                                                                                            
00542                                           c.dequePulseID.push_back(new_pvd);
00543                                                                                                                 
00544                                           if (c.dequePulseID.size() > c.mapPulseIDBufferSize) {
00545                                             c.dequePulseID.pop_front();                                 
00546                                           }
00547                                         
00548                                         } catch (std::bad_alloc &e) {
00549                  
00550                                          std::cout << "change_dequeuPulseID" << " //" << e.what() << std:: endl;
00551                                          exit(1);
00552                                                                 
00553                                         }
00554 
00555                                 
00556                                   
00557                                 }
00558 
00559 private:
00560         PVDataHolder new_pvd;
00561 };
00562 
00563 
00564 
00568 struct change_mapPulseID
00569 {
00570         change_mapPulseID (const PVDataHolder  & new_pvd): new_pvd(new_pvd){}
00571 
00572         void operator() (Conduit& c) {
00573                                 
00574                                         try{
00575                                  
00576                                         //std::pair<unsigned long long, PVDataHolder> p = std::make_pair(new_pvd.getPulseID(), new_pvd);
00577                                         
00578                                         //Check if make_pair is a success
00579                                                                         
00580                                         c.mapPulseID.insert(std::make_pair(new_pvd.getPulseID(), new_pvd));
00581                                         
00582                                                                         
00583                                         if (c.mapPulseID.size() > c.mapPulseIDBufferSize) {
00584                                         
00585                                                 std::map<unsigned long long, PVDataHolder>::iterator pos=c.mapPulseID.begin();
00586                                                 if (pos != c.mapPulseID.end()) {
00587                                                         c.mapPulseID.erase(pos);                                          
00588                                                 }
00589                                                 else {
00590                                                 std::cout << "ITERATOR NOT FOUND in change_mapPulseID" << std::endl;
00591                                                 }
00592                                         }
00593                                         
00594                                         } catch (std::bad_alloc &e) {
00595                  
00596                                          std::cout << "change_mapPulseID" << " //" << e.what() << std:: endl;
00597                                          exit(1);
00598                                                                 
00599                                         }
00600                                   
00601                                 }
00602 
00603 private:
00604         PVDataHolder new_pvd;
00605 };
00606 
00607 
00608 
00609 
00614 struct change_mapPulseIDBufferSize
00615 {
00616         change_mapPulseIDBufferSize (const unsigned short  & new_mapPulseIDBufferSize): new_mapPulseIDBufferSize(new_mapPulseIDBufferSize){}
00617                                         
00618         void operator() (Conduit& c) {
00619                                                 ipos=0;
00620                                                 if (c.mapPulseIDBufferSize > new_mapPulseIDBufferSize) {
00621                                                         std::map<unsigned long long, PVDataHolder>::iterator pos;
00622                                                   for (pos=c.mapPulseID.begin();  pos != c.mapPulseID.end();) {
00623                                                                 ++ipos;
00624                                                                 if (ipos > new_mapPulseIDBufferSize) {
00625                                                                 c.mapPulseID.erase(pos++);
00626                                                                 }                                                                                        
00627                                                                 else {
00628                                                                         ++pos;                                                  
00629                                                                 }
00630                                                         }                                               
00631                                                 }
00632                                                 c.mapPulseIDBufferSize=new_mapPulseIDBufferSize;                                                                    
00633                                 }
00634 
00635 private:
00636         unsigned short new_mapPulseIDBufferSize;
00637                                 unsigned short ipos;
00638 };
00639 
00640 
00645 struct change_monitorAction
00646 {
00647         change_monitorAction (std::string  &new_monitorAction): new_monitorAction(new_monitorAction){}
00648 
00649         void operator() (Conduit& c) {
00650                 c.monitorAction.push_back(new_monitorAction);
00651         }
00652 private:
00653         std::string new_monitorAction;
00654 };
00655 
00656 
00657 
00662 struct change_monitorActionClear
00663 {
00664     change_monitorActionClear (){}
00665 
00666     void operator() (Conduit& c) {
00667         c.monitorAction.clear();
00668     }
00669 
00670 };
00671 
00672 
00673 
00678 struct change_monitorActionErase
00679 {
00680         change_monitorActionErase (std::string  &new_monitorAction): new_monitorAction(new_monitorAction){}
00681 
00682         void operator() (Conduit& c) {
00683             bool maFound=false;
00684             std::vector<std::string>::iterator it;
00685 
00686 
00687             for (it = c.monitorAction.begin(); it != c.monitorAction.end(); ) {
00688                 if( (*it)==new_monitorAction) {
00689                     it = c.monitorAction.erase(it);
00690                     maFound=true;
00691                 }
00692                 else {
00693                     ++it;
00694                 }
00695             }
00696 
00697             if (!maFound) {
00698                 std::cout << "monitorAction " << new_monitorAction << " NOT FOUND! " << std::endl;
00699                 std::cout << "Could not delete entry!" << std::endl;
00700             }
00701 
00702         }
00703 private:
00704         std::string new_monitorAction;
00705 };
00706 
00707 
00712 struct change_monitorPolicyErase
00713 {
00714     change_monitorPolicyErase (unsigned int  & new_evid): new_evid(new_evid){}
00715 
00716     void operator() (Conduit& c) {
00717 
00718         bool evidFound=false;
00719         std::vector<MonitorPolicy>::iterator it;
00720         //Iterate
00721         for (it = c.mpV.begin(); it != c.mpV.end();) {
00722             //std::cout << "ID " << (*it).getID() << " " << std::endl;
00723 
00724             if ( (*it).getID()==new_evid) {
00725                 evidFound=true;
00726                 it=(c.mpV).erase(it);
00727                 break;
00728             }
00729             else {
00730                  ++it;
00731             }
00732         }
00733 
00734         if (!evidFound) {
00735             std::cout << "evid " << new_evid << " NOT FOUND! " << std::endl;
00736             std::cout << "Could not delete entry!" << std::endl;
00737         }
00738     }
00739 
00740 private:
00741     unsigned int  new_evid;
00742 };
00743 
00744 
00745 
00746 
00751 struct change_monitorPolicyInsert
00752 {
00753     change_monitorPolicyInsert (class MonitorPolicy & new_monitorPolicy): new_monitorPolicy(new_monitorPolicy){}
00754 
00755     void operator() (Conduit& c) {
00756 
00757 
00758         //insert into mpV
00759         (c.mpV).push_back(new_monitorPolicy);
00760 
00761         if (c.mpV.size()>(MAX_NO_MONITORS_PER_CHANNEL/2)) {
00762             std::cout << "HEY DUDE - YOU NOW HAVE " << c.mpV.size() << " MONITORS " << std::endl;
00763             std::cout << "for channel " << c.pv << " with handle " << c.handle << std::endl;
00764         }
00765 
00766 
00767     }
00768 
00769 private:
00770     class MonitorPolicy new_monitorPolicy;
00771 };
00772 
00773 
00774 
00779 struct change_monitorPolicyInWaitingErase
00780 {
00781     change_monitorPolicyInWaitingErase (unsigned int  & new_evid): new_evid(new_evid){}
00782 
00783     void operator() (Conduit& c) {
00784 
00785         bool evidFound=false;
00786         std::vector<MonitorPolicy>::iterator it;
00787         //Iterate
00788         for (it = c.mpInWaitingV.begin(); it != c.mpInWaitingV.end(); ++it) {
00789 
00790             if ( (*it).getID()==new_evid) {
00791                 evidFound=true;
00792                 (c.mpInWaitingV).erase(it);
00793                 break;
00794             }
00795         }
00796 
00797         if (!evidFound) {
00798             std::cout << "evid " << new_evid << " NOT FOUND! " << std::endl;
00799             std::cout << "Could not delete entry!" << std::endl;
00800         }
00801     }
00802 
00803 private:
00804     unsigned int  new_evid;
00805 };
00806 
00807 
00808 
00813 struct change_monitorPolicyInWaitingInsert
00814 {
00815     change_monitorPolicyInWaitingInsert (class MonitorPolicy & new_monitorPolicy): new_monitorPolicy(new_monitorPolicy){}
00816 
00817     void operator() (Conduit& c) {
00818 
00819         //insert into mpnWaitingV
00820         (c.mpInWaitingV).push_back(new_monitorPolicy);
00821 
00822         if (c.mpInWaitingV.size()>6) {
00823             std::cout << "HEY DUDE - YOU NOW HAVE " << c.mpInWaitingV.size()
00824                     << " MONITORS IN WAITING" << std::endl;
00825             std::cout << "for channel " << c.pv << " with handle " << c.handle << std::endl;
00826         }
00827     }
00828 
00829 private:
00830     class MonitorPolicy new_monitorPolicy;
00831 };
00832 
00833 
00834 
00835 
00836 
00837 
00838 
00839 
00843 struct change_pvAlias
00844 {
00845     change_pvAlias (const char * & new_pvAlias): new_pvAlias(new_pvAlias){}
00846 
00847     void operator() (Conduit& c) {
00848         c.pvAlias =  new_pvAlias;
00849         //No longer supporting c,pvd
00851         //strcpy(c.pvc.pvAlias, new_pvAlias);
00852     }
00853 
00854 private:
00855     const char * new_pvAlias;
00856 };
00857 
00858 
00859 
00860 
00879 struct change_status
00880 {
00881     change_status (const int  & new_status): new_status(new_status){}
00882     void operator() (Conduit& c) {c.status =  new_status;}
00883 
00884 private:
00885     int  new_status;
00886 };
00887 
00888 
00889 
00893 struct change_usrArgs
00894 {
00895     change_usrArgs (const unsigned int  & new_usrArgs): new_usrArgs(new_usrArgs){}
00896     void operator() (Conduit& c) {c.usrArgs = (void *) (unsigned long) new_usrArgs;} // APRIL2018 - added to remove C++11 compiler warning
00897 
00898 
00899 private:
00900     unsigned int  new_usrArgs;
00901 };
00902 
00903 
00907 struct change_groupHandle
00908 {
00909         change_groupHandle (const unsigned int  & new_groupHandle): new_groupHandle(new_groupHandle){}
00910 
00911         void operator() (Conduit& c) {c.groupHandle =  new_groupHandle;}
00912 
00913 private:
00914         unsigned int  new_groupHandle;
00915 };
00916 
00917 
00918 
00919 #endif // CONDUITFRIENDS_H

Generated on 28 May 2018 for CAFE by  doxygen 1.6.1