Code View

plugin / plugin-2.2.0.0 / src / dso / ExceptionMessages.cpp
// SPDX-License-Identifier: MIT
#include "ExceptionMessages.hh"

#include <sstream>

namespace fedem
{
  namespace exception
  {
    static void streamDescriptionHead( std::ostream& stream,
                                       std::string const& message )
    {
      stream << "Exception\n"
                "  Message     : ";
      stream << message;
      stream << "\n";
    }

    std::string descriptionHead( std::string const& message,
                                 std::locale const& loc )
    {
      std::ostringstream stream;
      stream.imbue( loc );
      streamDescriptionHead( stream, message );
      return stream.str( );
    }

    std::string descriptionHead( std::string const& message )
    {
      std::ostringstream stream;
      streamDescriptionHead( stream, message );
      return stream.str( );
    }

    static void streamDescriptionOptional( std::ostream& stream,
                                           std::string const& file,
                                           unsigned long lineNo )
    {
      stream << "  Filename    : '";
      stream << file;
      stream << "'\n"
                "  Line Number : '";
      stream << lineNo;
      stream << "\n";
    }

    std::string descriptionOptional( std::string const& file,
                                     unsigned long lineNo,
                                     std::locale const& loc )
    {
      std::ostringstream stream;
      stream.imbue( loc );
      streamDescriptionOptional( stream, file, lineNo );
      return stream.str( );
    }

    std::string descriptionOptional( std::string const& file,
                                     unsigned long lineNo )
    {
      std::ostringstream stream;
      streamDescriptionOptional( stream, file, lineNo );
      return stream.str( );
    }
  }  // namespace exception
}  // namespace fedem