/* ***********************************************************************
//
//   Copyright (C) 2025 -- The 4D-STAR Collaboration
//   File Author: Emily Boudreaux
//   Last Modified: March 20, 2025
//
//   4DSSE is free software; you can use it and/or modify
//   it under the terms and restrictions the GNU General Library Public
//   License version 3 (GPLv3) as published by the Free Software Foundation.
//
//   4DSSE is distributed in the hope that it will be useful,
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//   See the GNU Library General Public License for more details.
//
//   You should have received a copy of the GNU Library General Public License
//   along with this software; if not, write to the Free Software
//   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// *********************************************************************** */
#include <string>
#include <utility>

#include "EOSio.h"
#include "helm.h"
#include "debug.h"

#include <string>

namespace serif::eos {
    EOSio::EOSio(const std::string &filename) : m_filename(filename) {
        load();
    }

    std::string EOSio::getFormat() const {
        return m_format;
    }


    EOSTable& EOSio::getTable() {
        return m_table;
    }

    void EOSio::load() {
        // Load the EOS table from the file
        // For now, just set the format to HELM

        m_format = "helm";
        if (m_format == "helm") {
            loadHelm();
        }
    }

    void EOSio::loadHelm() {
        // Load the HELM table from the file
        auto helmTabptr = serif::eos::helmholtz::read_helm_table(m_filename);
        m_table = std::move(helmTabptr);
        m_loaded = true;
    }
}