/** \file
 *
 *  Contains the DataReader class implementation.
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 *
 */

#include "UniversalDataReader.h"

#include "data/DataElement.h"

UniversalDataReader::UniversalDataReader( Component* owner,
        UniversalDataElement& universalElement,
        const DataValue* defaultValue,
        bool deleteDefaultValue )
    : DataReader( owner, universalElement, defaultValue, deleteDefaultValue ),
      universalElement_( universalElement )
{}

UniversalDataReader::UniversalDataReader( Component* owner,
        UniversalDataElement& universalElement,
        const Unit& defaultUnit )
    : DataReader( owner, universalElement, defaultUnit ),
      universalElement_( universalElement )
{}


UniversalDataReader::~UniversalDataReader()
{
}

float UniversalDataReader::getAccuracy( const Unit& unit )
{
    if( false == element_.isActive() )
    {
        return DataElement::NO_ACCURACY;
    }
    else
    {
        try
        {
            return element_.getAccuracy( unit );
        }
        catch( DataElement::UninitializedException & deui )
        {
            return DataElement::NO_ACCURACY;
        }
    }
}

float UniversalDataReader::getWrittenAccuracy( const Unit& unit )
{
    return element_.getWrittenAccuracy( unit );
}

void UniversalDataReader::requestData( RequestStrategy requestStrategy )
{
    //universalElement_.requestData( requestStrategy );
    requestStrategy_ = requestStrategy;
}
