#ifndef TAG_H
#define TAG_H

#include <iostream>
using namespace std;

namespace hierarchy_memory          {
namespace cache                     {
namespace cache_multilevel          {
namespace cache_onelevel            {

class tag_t
{
public    : bool            valid    ;
public    : uint32_t        address  ;
public    : uint32_t        trdid    ;
public    : uint32_t        index_lru;
  
  friend ostream& operator<< (ostream& output_stream, const tag_t &x)
  {
    output_stream <<                                   x.valid     << " "
		  << hex << setw(8) << setfill('0') << x.address   << " " << dec
		  <<                                   x.trdid     << " "
		  <<                                   x.index_lru;
    
    return output_stream;
  }
  
};

};};};};

#endif //!TAG_H
