- /*
- * TbUTChannelMaskProvider.cpp
- *
- * Created on: Oct 11, 2014
- * Author: ADendek
- */
-
- #include "TbUTChannelMaskProvider.h"
- #include"TbUTRawData.h"
- #include <iostream>
-
- using namespace TbUT;
- using namespace std;
-
-
- ChannelMaskProvider::ChannelMaskProvider(IFileValidator & p_fileValidator):
- m_fileValidator(p_fileValidator),
- m_masks()
- {
- }
-
- void ChannelMaskProvider::getMaskFromFile(const string& p_filename)
- {
- validateFile();
- ifstream l_file;
- openfile(p_filename,l_file);
- retreiveMasksFromFile(l_file);
- checkMaskVector();
- }
-
- bool ChannelMaskProvider::isMasked(int p_channel)
- {
- if(!isChannelInRange(p_channel)){
- std::cout<<"channel out of range"<<p_channel<<std::endl;
- throw ChannelOutOfRange("");
- }
- return (m_masks[p_channel]==0);
- }
-
-
-
- void ChannelMaskProvider::validateFile()
- {
- if(!m_fileValidator.validateFile())
- throw InputFileError("Mask File validation error!");
-
- }
-
- void ChannelMaskProvider::openfile(const std::string& p_filename, std::ifstream& p_inputFile)
- {
- p_inputFile.open(p_filename.c_str(),ios::in);
- if(!p_inputFile.good())
- throw InputFileError("Cannot open mask file!"+p_filename);
- }
-
- void ChannelMaskProvider::retreiveMasksFromFile(std::ifstream& p_file)
- {
- int l_sensorNumber= RawData<>::getnChannelNumber();
- for(int channel=0;channel<l_sensorNumber;channel++){
- unsigned short l_mask;
- p_file>>l_mask;
- m_masks.push_back(l_mask);
- }
- }
-
- void ChannelMaskProvider::checkMaskVector()
- {
- const unsigned int l_sensorNumber=RawData<>::getnChannelNumber();
- if (m_masks.size() !=l_sensorNumber)
- throw NotEnoughtChannel("");
- }
-
- bool ChannelMaskProvider::isChannelInRange(int p_channel)
- {
- int l_sensorNumber= RawData<>::getnChannelNumber();
- return p_channel<l_sensorNumber;
- }