#include "../include/Cache_OneLevel.h"

namespace environment {
namespace cache {
namespace cache_onelevel {

  std::ostream& operator<< (std::ostream& output, Cache_OneLevel & x)
  {
    output << x.information(0) << std::endl
	   << "\t* Size Address (hex)  : " << x.size_address         << std::endl;

    output << "  * Tag" << std::endl;
    for (uint32_t i = 0; i < x.param->nb_line / x.param->associativity; i ++)
      {
	output << "    ";
	for (uint32_t j = 0; j < x.param->associativity; j ++)
	  output << x.tag [i][j] << " | ";
	output << std::endl;
      }

    output << "  * Write Buffer" << std::endl;
    output << *x.write_buffer << std::endl;

    return output;
  }
};
};
};
