core: refactor ParameterLogger specializations
This commit is contained in:
committed by
Peter Barnes
parent
366c12b546
commit
fd5a6a44a3
@@ -642,23 +642,29 @@ NodePrinter LogGetNodePrinter (void)
|
||||
|
||||
|
||||
ParameterLogger::ParameterLogger (std::ostream &os)
|
||||
: m_first (true),
|
||||
m_os (os)
|
||||
: m_os (os)
|
||||
{}
|
||||
|
||||
|
||||
void
|
||||
ParameterLogger::CommaRest()
|
||||
{
|
||||
if (m_first)
|
||||
{
|
||||
m_first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_os << ", ";
|
||||
}
|
||||
}
|
||||
|
||||
template<>
|
||||
ParameterLogger &
|
||||
ParameterLogger::operator<< <std::string> (const std::string& param)
|
||||
{
|
||||
if (m_first)
|
||||
{
|
||||
m_os << "\"" << param << "\"";
|
||||
m_first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_os << ", \"" << param << "\"";
|
||||
}
|
||||
CommaRest();
|
||||
m_os << "\"" << param << "\"";
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -673,15 +679,7 @@ template<>
|
||||
ParameterLogger &
|
||||
ParameterLogger::operator<< <int8_t> (const int8_t param)
|
||||
{
|
||||
if (m_first)
|
||||
{
|
||||
m_os << static_cast<int16_t> (param);
|
||||
m_first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_os << ", " << static_cast<int16_t> (param);
|
||||
}
|
||||
(*this) << static_cast<int16_t> (param);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -689,15 +687,7 @@ template<>
|
||||
ParameterLogger &
|
||||
ParameterLogger::operator<< <uint8_t> (const uint8_t param)
|
||||
{
|
||||
if (m_first)
|
||||
{
|
||||
m_os << static_cast<uint16_t> (param);
|
||||
m_first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_os << ", " << static_cast<uint16_t> (param);
|
||||
}
|
||||
(*this) << static_cast<uint16_t> (param);
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
@@ -448,9 +448,6 @@ LogComponent & GetLogComponent (const std::string name);
|
||||
*/
|
||||
class ParameterLogger
|
||||
{
|
||||
bool m_first; //!< First argument flag, doesn't get `, `.
|
||||
std::ostream &m_os; //!< Underlying output stream.
|
||||
|
||||
public:
|
||||
/**
|
||||
* Constructor.
|
||||
@@ -501,21 +498,23 @@ public:
|
||||
* \return This ParameterLogger, so it's chainable.
|
||||
*/
|
||||
ParameterLogger& operator<< (const char* param);
|
||||
|
||||
private:
|
||||
|
||||
/** Add `, ` before every parameter after the first. */
|
||||
void CommaRest();
|
||||
|
||||
bool m_first{true}; //!< First argument flag, doesn't get `, `.
|
||||
std::ostream &m_os; //!< Underlying output stream.
|
||||
|
||||
};
|
||||
|
||||
template<typename T, typename U>
|
||||
ParameterLogger&
|
||||
ParameterLogger::operator<< (T param)
|
||||
{
|
||||
if (m_first)
|
||||
{
|
||||
m_os << param;
|
||||
m_first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_os << ", " << param;
|
||||
}
|
||||
CommaRest();
|
||||
m_os << param;
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -523,18 +522,12 @@ template<typename T, typename U>
|
||||
ParameterLogger&
|
||||
ParameterLogger::operator<< (const T& param)
|
||||
{
|
||||
if (m_first)
|
||||
{
|
||||
m_os << param;
|
||||
m_first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_os << ", " << param;
|
||||
}
|
||||
CommaRest();
|
||||
m_os << param;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
template<typename T>
|
||||
ParameterLogger&
|
||||
ParameterLogger::operator<< (const std::vector<T>& vector)
|
||||
|
||||
Reference in New Issue
Block a user