////////////////////////////////////////////////////////////////////////////////
// 
// Message.cc
//
//    produced: 2024-05-04 jr
// 
////////////////////////////////////////////////////////////////////////////////

#include "Message.hh"

namespace topcom {

  std::mutex IO_sync::mutex;

  Message MessageStreams::_result(std::cout);
  Message MessageStreams::_forced(std::cerr);
  Message MessageStreams::_verbose;
  Message MessageStreams::_debug;

  Message& Message::print_topcomheader() {
    *this << std::endl;
    *this << "==================================================================\n";
    *this << "--------------------- " << PACKAGE << " version " << VERSION << " -----------------------\n";
    *this << "   Triangulations of Point Configurations and Oriented Matroids   \n";
    *this << "------------------------ by Joerg Rambau -------------------------\n";
    print_timestamp();
    *this << "==================================================================\n";
    *this << std::endl;
#ifdef DEBUG
#ifdef TOPCOM_CONTAINERS
    *this << "       -- using STL containers for hash tables --" << std::endl;
#endif
#ifdef TOPCOM_SYMMETRIES
    *this << "       -- using TOPCOM containers for symmetries  --" << std::endl;
#endif
#ifdef TOPCOM_FLIPS
    *this << "       --    using TOPCOM containers for flips    --" << std::endl;
#endif
#ifdef TOPCOM_CHIROTOPE
    *this << "       -- using TOPCOM containers for chirotopes  --" << std::endl;
#endif
    *this << std::endl;
#endif
    return *this;
  }

}; // namespace topcom
  
// eof Message.cc
