Program Listing for File reader.h

Return to documentation for file (src/sparsebase/io/reader.h)

/*******************************************************
 * Copyright (c) 2022 SparCity, Amro Alabsi Aljundi, Taha Atahan Akyildiz, Arda
 *Sener All rights reserved.
 *
 * This file is distributed under MIT license.
 * The complete license agreement can be obtained at:
 * https://sparcityeu.github.io/sparsebase/pages/license.html
 ********************************************************/
#ifndef SPARSEBASE_SPARSEBASE_UTILS_IO_READER_H_
#define SPARSEBASE_SPARSEBASE_UTILS_IO_READER_H_

#include <algorithm>
#include <cstring>
#include <fstream>
#include <string>
#include <utility>
#include <vector>

#include "sparsebase/config.h"
#include "sparsebase/format/array.h"
#include "sparsebase/format/coo.h"
#include "sparsebase/format/csc.h"
#include "sparsebase/format/csr.h"
#include "sparsebase/format/format_order_one.h"
#include "sparsebase/format/format_order_two.h"

namespace sparsebase {

namespace io {

class Reader {
 public:
  virtual ~Reader() = default;
};

template <typename IDType, typename NNZType, typename ValueType>
class ReadsCSR {
 public:
  virtual format::CSR<IDType, NNZType, ValueType> *ReadCSR() const = 0;
};

template <typename IDType, typename NNZType, typename ValueType>
class ReadsCOO {
 public:
  virtual format::COO<IDType, NNZType, ValueType> *ReadCOO() const = 0;
};

template <typename T>
class ReadsArray {
 public:
  virtual format::Array<T> *ReadArray() const = 0;
};

}  // namespace io

}  // namespace sparsebase
#endif  // SPARSEBASE_SPARSEBASE_UTILS_IO_READER_H_