Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

ILUMarshalling.h

Go to the documentation of this file.
00001 #ifndef SCT_ILUMARSHALLING_H
00002 #define SCT_ILUMARSHALLING_H
00003 
00004 #include <list>
00005 #include <vector>
00006 
00007 namespace Sct {
00008     
00015 template <typename ILUSequence, typename ListMember>
00016 inline ILUSequence *copyListToILU(std::list<ListMember> thisList) {
00017   ILUSequence *result;
00018 
00019   result = ILUSequence::Create(4, NULL);
00020   result->Clear(0);
00021 
00022 /*   list<ListMember> parts = config.listPartitions(); */
00023 
00024   for(typename std::list<ListMember>::const_iterator m = thisList.begin();
00025       m!=thisList.end();
00026       m++) {
00027     result->Append(*m);
00028   }
00029 
00030   return result;
00031 }
00032 
00033 template <typename ILUSequence, typename ListMember>
00034 inline std::list<ListMember> copyILUToList(ILUSequence* thisSeq) {
00035   std::list<ListMember> result;
00036 
00037   if (thisSeq) {
00038       for(unsigned int i=0; i<thisSeq->Length(); i++) {
00039       result.push_back(thisSeq->Nth(i));
00040       }
00041   }
00042 
00043   return result;
00044 }
00045 
00046 template <typename ILUSequence, typename ArrayMember>
00047 inline ILUSequence *copyArrayToILU(ArrayMember *array, unsigned long length) {
00048   ILUSequence *result;
00049 
00050   result = ILUSequence::Create(4, NULL);
00051   result->Clear(0);
00052 
00053   if(array) {
00054     for(unsigned long i=0; i<length; i++) {
00055       result->Append(array[i]);
00056     }
00057   }
00058 
00059   return result;
00060 }
00061 
00062 template <typename ILUSequence, typename ArrayMember>
00063 inline ILUSequence *copyVectorToILU(std::vector<ArrayMember> array) {
00064   ILUSequence *result;
00065 
00066   result = ILUSequence::Create(4, NULL);
00067   result->Clear(0);
00068 
00069   for(unsigned long i=0; i<array.size(); i++) {
00070     result->Append(array[i]);
00071   }
00072 
00073   return result;
00074 }
00075 
00076 template <typename ILUBlock, typename ArrayMember>
00077 inline ArrayMember *copyILUToArray(ILUBlock thisSeq, ArrayMember *array, size_t length) {
00078   assert(thisSeq->Length() == length);
00079   for(unsigned int i=0; i<length; i++) {
00080     array[i] = thisSeq->Nth(i);
00081   }
00082 
00083   return array;
00084 }
00085   
00086   
00087 }
00088 
00089 
00090 #endif //SCT_ILUMARSHALLING_H

Generated on Mon Dec 15 19:36:04 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3