00001 #include "CPPFORT/lcvec.h"
00002 #include "EVENT/LCIntVec.h"
00003 #include "EVENT/LCFloatVec.h"
00004
00005 using namespace EVENT ;
00006
00007
00008
00009 int lcsvcgetlength(PTRTYPE strvec){
00010 LCStrVec* strVec = reinterpret_cast<LCStrVec*>(strvec) ;
00011 return strVec->size() ;
00012 }
00013
00014 char* lcsvcgetstringat(PTRTYPE strvec, int index){
00015 LCStrVec* strVec = reinterpret_cast<LCStrVec*>(strvec) ;
00016 return const_cast<char*>( (*strVec)[index-1].c_str() );
00017 }
00018
00019 int lcivcgetlength(PTRTYPE intvec){
00020 LCIntVec* intVec = reinterpret_cast<LCIntVec*>(intvec) ;
00021 return intVec->size() ;
00022 }
00023
00024 int lcivcgetintat(PTRTYPE intvec, int index){
00025 LCIntVec* intVec = reinterpret_cast<LCIntVec*>(intvec) ;
00026 return (*intVec)[index-1] ;
00027 }
00028
00029 int lcfvcgetlength(PTRTYPE floatvec){
00030 LCFloatVec* floatVec = reinterpret_cast<LCFloatVec*>(floatvec) ;
00031 return floatVec->size() ;
00032 }
00033
00034 float lcfvcgetfloatat(PTRTYPE floatvec, int index){
00035 LCFloatVec* floatVec = reinterpret_cast<LCFloatVec*>(floatvec) ;
00036 return (*floatVec)[index-1] ;
00037 }
00038
00039
00040
00041 int stringvectorgetlength(PTRTYPE strvec){
00042 StringVec* strVec = reinterpret_cast<StringVec*>(strvec) ;
00043 return strVec->size() ;
00044 }
00045
00046 char* stringvectorgetelement(PTRTYPE strvec, int index){
00047 StringVec* strVec = reinterpret_cast<StringVec*>(strvec) ;
00048 return const_cast<char*>( (*strVec)[index-1].c_str() );
00049 }
00050
00051 int intvectorgetlength(PTRTYPE intvec){
00052 IntVec* intVec = reinterpret_cast<IntVec*>(intvec) ;
00053 return intVec->size() ;
00054 }
00055
00056 int intvectorgetelement(PTRTYPE intvec, int index){
00057 IntVec* intVec = reinterpret_cast<IntVec*>(intvec) ;
00058 return (*intVec)[index-1] ;
00059 }
00060
00061 int pointervectorgetlength(PTRTYPE pointervec){
00062 PointerVec* pointerVec = reinterpret_cast<PointerVec*>(pointervec) ;
00063 return pointerVec->size() ;
00064 }
00065
00066 PTRTYPE pointervectorgetelement(PTRTYPE pointervec, int index){
00067 PointerVec* pointerVec = reinterpret_cast<PointerVec*>(pointervec) ;
00068 return (*pointerVec)[index-1] ;
00069 }
00070
00071 int floatvectorgetlength(PTRTYPE floatvec){
00072 FloatVec* floatVec = reinterpret_cast<FloatVec*>(floatvec) ;
00073 return floatVec->size() ;
00074 } \
00075
00076 float floatvectorgetelement(PTRTYPE floatvec, int index){
00077 FloatVec* floatVec = reinterpret_cast<FloatVec*>(floatvec) ;
00078 return (*floatVec)[index-1] ;
00079 }
00080