#include<iostream>
#include "nlsr_conf_param.hpp"
#include "utility/nlsr_logger.hpp"
#define THIS_FILE "nlsr_conf_param.cpp"

namespace nlsr
{

  using namespace std;

  ostream&
  operator << (ostream& os, ConfParameter& cfp)
  {
    os  <<"Router Name: "<< cfp.getRouterName()<<endl;
    os  <<"Site Name: "<< cfp.getSiteName()<<endl;
    os  <<"Network: "<< cfp.getNetwork()<<endl;
    os  <<"Router Prefix: "<< cfp.getRouterPrefix()<<endl;
    os  <<"ChronoSync sync Prifex: "<< cfp.getChronosyncSyncPrefix()<<endl;
    os  <<"Interest Retry number: "<< cfp.getInterestRetryNumber()<<endl;
    os  <<"Interest Resend second: "<< cfp.getInterestResendTime()<<endl;
    os  <<"Info Interest Interval: "<<cfp.getInfoInterestInterval()<<endl;
    os  <<"LSA refresh time: "<< cfp.getLsaRefreshTime()<<endl;
    os  <<"Max Faces Per Prefix: "<< cfp.getMaxFacesPerPrefix()<<endl;
    os  <<"Log Dir: "<< cfp.getLogDir()<<endl;
    os  <<"Detalied logging: "<< cfp.getDetailedLogging()<<endl;
    os  <<"Debugging: "<< cfp.getDebugging()<<endl;
    os  <<"Hyperbolic ROuting: "<< cfp.getIsHyperbolicCalc()<<endl;
    os  <<"Hyp R: "<< cfp.getCorR()<<endl;
    os  <<"Hyp theta: "<< cfp.getCorTheta()<<endl;
    os  <<"Tunnel Type: "<< cfp.getTunnelType()<<endl;
    return os;
  }

} //namespace nlsr
