WSAReader.cpp

Go to the documentation of this file.
00001 
00002 
00003 //-----------------------------------------------------------------------------
00004 // CVS: $Revision: 2866 $, $Date: 2006-09-15 12:04:57 +0100 (Fri, 15 Sep 2006) $, $Author: rsc $
00005 //-----------------------------------------------------------------------------
00006 #include <iostream>
00007 #include <stdexcept>
00008 
00009 #include "Datum.h"
00010 #include "WSAReader.h"
00011 
00012 using namespace std;
00013 //-----------------------------------------------------------------------------
00014 WSAReader::WSAReader(const string& aDtdFileName)
00015   : FileObjectReader(),
00016     mBufferDtd(aDtdFileName),
00017     mBufferAry(0),
00018     mBufferSize(0),
00019     mIdPtr(0),
00020     mRaPtr(0),
00021     mDecPtr(0)
00022 {
00023   mBufferSize = mBufferDtd.getRecordSize();
00024 
00025   try
00026   {
00027     mIdPtr = mBufferDtd.at(0);
00028     mRaPtr = mBufferDtd.at(1);
00029     mDecPtr = mBufferDtd.at(2);
00030   }
00031   catch (const exception &e)
00032   {
00033     cout << "Error in dtd file: " << aDtdFileName << endl;
00034     throw;
00035   }
00036 
00037   // Add in errors if data type not expected
00038   mBufferAry = new char[mBufferSize];
00039 }
00040 //-----------------------------------------------------------------------------
00041 WSAReader::~WSAReader()
00042 {
00043   delete mBufferAry;
00044 }
00045 //-----------------------------------------------------------------------------
00046 Object* WSAReader::read(FILE* aFilePtr)
00047 {
00048   Object* theObjectPtr = 0;
00049   double orthoSD = 0;
00050   double decSD = 0;
00051 
00052   if (mBufferSize == fread(mBufferAry,
00053                            sizeof(char),
00054                            mBufferSize,
00055                            aFilePtr))
00056   {
00057     theObjectPtr = new Datum(mIdPtr->extractBigIntFrom(mBufferAry),
00058                              mRaPtr->extractDoubleFrom(mBufferAry),
00059                              orthoSD,
00060                              mDecPtr->extractDoubleFrom(mBufferAry),
00061                              decSD);
00062   }
00063 
00064   return theObjectPtr;
00065 }
00066 //-----------------------------------------------------------------------------
Generated on Mon Oct 4 10:39:55 2010 for Matching.kdevelop by  doxygen 1.6.3