#include <alma/ASDMBinaries/SDMDataObjectStreamReader.h>
#include <alma/ASDM/Misc.h>
using namespace CorrelationModeMod;
using namespace CorrelatorTypeMod;
using namespace PrimitiveDataTypeMod;
using namespace ProcessorTypeMod;
SDMDataObjectStreamReaderException::SDMDataObjectStreamReaderException():message("SDMDataObjectStreamReaderException:") {;}
SDMDataObjectStreamReaderException::SDMDataObjectStreamReaderException(const string & message): message("SDMDataObjectStreamReaderException:" + message) {;}
const string& SDMDataObjectStreamReaderException::getMessage() { return message; }
SDMDataObjectStreamReader::SDMDataObjectStreamReader() {
const char *partNames[] = {"actualDurations", "actualTimes", "autoData", "crossData", "zeroLags", "flags"};
set<string> dummy(partNames, partNames+6);
sdmDataSubset = SDMDataSubset(&sdmDataObject);
SDMDataObjectStreamReader::~SDMDataObjectStreamReader() {
void SDMDataObjectStreamReader::open(const string& path) {
checkState(T_OPEN, "open");
f.open(path.c_str(), ifstream::in);
throw SDMDataObjectStreamReaderException("could not open '" + path + "'.");
boundary_1 = requireMIMEHeader();
sdmDataObject.valid_ = true;
requireSDMDataHeaderMIMEPart();
currentState = S_AT_BEGINNING;
int64_t SDMDataObjectStreamReader::position() {
return (int64_t) f.tellg();
void SDMDataObjectStreamReader::position(int64_t p) {
void SDMDataObjectStreamReader::close() {
releaseMemory(sdmDataSubset);
for (unsigned int i = 0; i < remainingSubsets.size(); i++)
releaseMemory(remainingSubsets[i]);
for (unsigned int i = 0; i < someSubsets.size(); i++)
releaseMemory(someSubsets[i]);
unsigned int SDMDataObjectStreamReader::currentIntegrationIndex() const { checkState(T_QUERY, "currentIntegrationIndex"); return integrationIndex; }
unsigned long long SDMDataObjectStreamReader::currentIntegrationStartsAt() const { checkState(T_QUERY, "currentIntegrationStartAt"); return integrationStartsAt; }
string SDMDataObjectStreamReader::title() const { checkState(T_QUERY, "title"); return sdmDataObject.title(); }
const ByteOrder* SDMDataObjectStreamReader::byteOrder() const { checkState(T_QUERY, "byteOrder"); return sdmDataObject.byteOrder(); }
unsigned long long SDMDataObjectStreamReader::startTime() const { checkState(T_QUERY, "startTime"); return sdmDataObject.startTime(); }
unsigned int SDMDataObjectStreamReader::numTime() const { checkState(T_QUERY, "numTime"); return sdmDataObject.numTime(); }
string SDMDataObjectStreamReader::dataOID() const { checkState(T_QUERY, "dataOID"); return sdmDataObject.dataOID(); }
string SDMDataObjectStreamReader::execBlockUID() const { checkState(T_QUERY, "execBlockUID"); return sdmDataObject.execBlockUID(); }
unsigned int SDMDataObjectStreamReader::execBlockNum() const { checkState(T_QUERY, "execBlockNum"); return sdmDataObject.execBlockNum(); }
unsigned int SDMDataObjectStreamReader::scanNum() const { checkState(T_QUERY, "scanNum"); return sdmDataObject.scanNum(); }
unsigned int SDMDataObjectStreamReader::subscanNum() const { checkState(T_QUERY, "subscanNum"); return sdmDataObject.subscanNum(); }
unsigned int SDMDataObjectStreamReader::numAntenna() const { checkState(T_QUERY, "numAntenna"); return sdmDataObject.numAntenna(); }