aboutsummaryrefslogtreecommitdiff
path: root/include/internal/catch_message.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/internal/catch_message.hpp')
-rw-r--r--include/internal/catch_message.hpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/include/internal/catch_message.hpp b/include/internal/catch_message.hpp
new file mode 100644
index 0000000..42866be
--- /dev/null
+++ b/include/internal/catch_message.hpp
@@ -0,0 +1,47 @@
+/*
+ * Created by Phil Nash on 1/2/2013.
+ * Copyright 2013 Two Blue Cubes Ltd. All rights reserved.
+ *
+ * Distributed under the Boost Software License, Version 1.0. (See accompanying
+ * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+#ifndef TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
+#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
+
+#include "catch_message.h"
+
+namespace Catch {
+
+ MessageInfo::MessageInfo( std::string const& _macroName,
+ SourceLineInfo const& _lineInfo,
+ ResultWas::OfType _type )
+ : macroName( _macroName ),
+ lineInfo( _lineInfo ),
+ type( _type ),
+ sequence( ++globalCount )
+ {}
+
+ // This may need protecting if threading support is added
+ unsigned int MessageInfo::globalCount = 0;
+
+
+ ////////////////////////////////////////////////////////////////////////////
+
+ ScopedMessage::ScopedMessage( MessageBuilder const& builder )
+ : m_info( builder.m_info )
+ {
+ m_info.message = builder.m_stream.str();
+ getResultCapture().pushScopedMessage( m_info );
+ }
+ ScopedMessage::ScopedMessage( ScopedMessage const& other )
+ : m_info( other.m_info )
+ {}
+
+ ScopedMessage::~ScopedMessage() {
+ getResultCapture().popScopedMessage( m_info );
+ }
+
+
+} // end namespace Catch
+
+#endif // TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED