#ifndef _io_AiresWrapper_h_ #define _io_AiresWrapper_h_ /*************************************************************************** AiresWrapper.h - description ------------------- begin : Mon Jun 02 2003 author : Troy Porter email : tporter@lsu.edu ***************************************************************************/ // $Id$ namespace io { /** \class AiresWrapper \brief C++ wrapper for Aires C functions \author Troy Porter \version $Id$ \ingroup aires */ class AiresWrapper { public: static void ciorinit(int* inilevel, int* codsys, int* vrb, int* irc); static void ciorshutdown(); static void cioclose(); static void cioclose1(int* channel); static int crofieldindex(int* channel, int* rectype, const char* fieldname, int* vrb, int* datype, int* irc); static void crofileinfo(int* channel, int* ouflag, int*vrb, int* irc); static int crofileversion(int* channel); static bool crogotorec(int* channel, int* recnumber, int* vrb, int* irc); static void croheader1info(int* ouflag); static void croheaderinfo(int* ouflag, int* vrb, int* irc); static void croinputdata0(int* intdata, // array double* realdata, // array int* shprimcode, // array double* shprimwt); // array static void crooldata(int* vrb, int* nobslev, double* olzv, // array double* oldepth, // array int* irc); static void croreccount(int* channel, int* vrb, int* nrtype, int* nrec, // array int* irc); static bool crorecfind(int* channel, int* intype, int* vrb, int* infield1, int* rectype); static void crorecninfo(int* channel, int* poskey, int* ouflag, int* vrb, int* irc); static int crorecnumber(int* channel, int* vrb, int* irc); static void crorewind(int* channel, int* vrb, int* irc); static bool crospcode(int* pcode, int* splabel); static void crotaskidc(char* taskname, int* namelen, int* taskversion, char* startdate); static void fitghf(int* bodata0, int* eodata0, double* depths, // array double* nallch, // array double* weights, // array int* ws, double* minnmax, double* nminratio, int* bodataeff, int* eodataeff, double* nmax, double* xmax, double* x0, double* lambda, double* sqsum, int* irc); static bool getcrorecord(int* channel, int* intfields, // array double* realfields, // array bool *altrec, int* vrb, int* irc); static bool getcrorectype(int* channel, int* vrb, int* infield1, int* rectype); static int getinpintc(char *dirname); static double getinprealc(char *dirname); static void getinpstringc(char *dirname, char *value, int* slen); static bool getinpswitchc(char *dirname); static double grandom(); static int nuclcode(int* z, int* n, int* irc); static void nucldecode(int* ncode, int* z, int* n, int* a); static void olcoord(int* nobslev, double* olzv, // array double* groundz, double* injz, double* zenith, double* azimuth, double* xaxis, // array double* yaxis, // array double* zaxis, // array double* tshift, // array double* mx, // array double* my, // array int* irc); static void olcrossed(int* olkey, int* updown, int* firstol, int* lastol); static void olcrossedu(int* olkey, double* ux, double* uy, double* uz, int* firstol, int* lastol); static bool olsavemarked(int* obslev, int* vrb, int* irc); static void olv2slant(int* nobslev, double* olxv, // array double* Xv0, int* zendis, double* zen1, double* zen2, double* groundz, double* olxs); // array static void opencrofilec(const char *wdir, const char *filename, int* header1, int* logbase, int* vrb, int* channel, int* irc); static void raninit(double* seed); static bool regetcrorecord(int* channel, int* intfields, // array double* realfields, // array bool *altrec, int* vrb, int* irc); static void sp1stint(int* csys, double* x1, double* y1, double* z1, int* irc); static void spaddnull(double* pener, double* pwt, int* irc); static void spaddp0(int* pcode, double* pener, int* csys, double* ux, double* uy, double* uz, double* pwt, int* irc); static void spaddpn(int* n, int* pcode, // array double* pener, // array int* cys, int* ldu, double* *uxyz, // array of vectors double* pwt, // array int* irc); static void speiend(int* retcode); static void speigetmodnamec(char *mn, int* mnlen, char *mnfull, int* mnfullen); static void speigetparsc(char *parstring, int* pstrlen); static void speimv(int* mvnew, int* mvold); static void spinjpoint(int* csys, double* x0, double* y0, double* z0, int* tsw, double* t0beta, int* irc); static void speistart(int* showerno, double* primener, double* injpos, // 3 element array double* xvinj, double* zground, double* xvground, double* dgroundinj, double* uprim); // 3 element array static void speitaskc(char *taskn, int* tasklen, int* tver); static void spnshowers(int* totsh, int* firstsh, int* lastsh); static void sprimname(char *pname, int* pnamelen); static int thisairesversion(); static double urandom(); static double xslant(double* Xvert, double* Xv0, double* cozenith, double* zground); private: AiresWrapper(); ~AiresWrapper(); static bool fInitialised; static unsigned int fNumberOfOpenFiles; }; } #endif