Commit Graph

100 Commits

Author SHA1 Message Date
Andrey Semashev
959a97c38b Avoid using deprecated Boost.Test headers. 2019-10-23 13:29:50 +03:00
Andrey Semashev
326d97a9d1 Added auto_newline stream manipulator and formatter.
The manipulator and formatter can be used to ensure a certain piece of output
ends with a newline without introducing duplicate newline characters if the
previous output ended with a newline already.
2019-06-24 00:27:16 +03:00
Andrey Semashev
d66ab73a5f Added forwarding of pointer type in Boost.Log streams.
When a user defines an output operator for std::basic_ostream and
a pointer to a user-defined type, that operator use to be ignored
because of the implicit cast to const void* that happened when
operator<< for formatting_ostream or record_ostream was called.
We now forward the pointer type to the operator<< for std::ostream,
so it is either cast then or user's operator<< is picked.

Fixes https://github.com/boostorg/log/issues/84.
2019-05-25 21:38:04 +03:00
Andrey Semashev
3925052c30 Added explicit support for std::string_view in formatting_ostream.
Explicit output operators allow to enable character code conversion, if
one is needed, on string view output. This is in line with the existing
support for other string types.
2019-05-25 21:27:49 +03:00
Andrey Semashev
1138b47fce Removed linking with Boost.System.
Since Boost.System is now header-only, no need to link with the library.
2019-01-14 20:16:20 +03:00
Andrey Semashev
effd8568a4 Disable Boost.Interprocess on Cygwin.
Boost.Interprocess doesn't compile on Cygwin:

https://github.com/boostorg/interprocess/issues/76

Also, disable affected tests and examples.
2019-01-06 19:51:48 +03:00
Andrey Semashev
136fd2bdfd CI compilation fixes for Cygwin and MinGW.
Some tests pull in pthread rwlock and therefore need _XOPEN_SOURCE=600
or higher to compile. Added platform defines to tests and examples
for good measure.

For MinGW worked around Boost.Build error when BOOST_LOG_WITHOUT_EVENT_LOG
is defined.
2019-01-06 14:13:32 +03:00
Andrey Semashev
9ddccb5e5c Added env variables that allow to disable building examples and standalone teader tests while testing. 2019-01-05 04:02:01 +03:00
Andrey Semashev
67eef1afba Switch to uncaught_exceptions from Boost.Core.
The implementation in Boost.Core was based in unhandled_exception_count
in Boost.Log, therefore we remove our loca implementation in favor
of the common one.
2018-12-17 19:21:25 +03:00
Andrey Semashev
a51cac7979 Nonessential changes in indentation. 2018-10-15 22:45:48 +03:00
Andrey Semashev
0f62e131cd Silenced a gcc warning about get_attr_value() being declared but not defined. 2017-09-05 18:11:04 +03:00
Andrey Semashev
adb7bcf05d Removed the previously deprecated type_info_wrapper. 2016-10-16 17:47:15 +03:00
Andrey Semashev
ea486c1468 Take scalar types and enums by value in streaming operators.
This allows to output static constants and bitfields directly into
formatting stream and record stream. Fixes ticket #11998.
2016-10-08 22:27:34 +03:00
Andrey Semashev
2dc0954e48 Disabled MSVC warning about using this in base initializer list. 2016-08-09 13:50:03 +03:00
Andrey Semashev
6995fd05b3 Silence MSVC warnings about truncating floating point constants. 2016-08-09 13:36:38 +03:00
Andrey Semashev
29347b2ae5 Silence MSVC warnings about truncating character bytes in UTF-8 literals. 2016-08-09 13:27:25 +03:00
Andrey Semashev
70debc533b Changed the max_size decorator so that the overflow marker length is
included into the size limit.
The max_size method on the stream buffer will now attempt to truncate
the attached string on the character boundary.
Fixed character boundary detection for multibyte encodings.
Clean up the overflow flag and the max size limit after the formatter
has completed.
Added a test for the max_size decorator.
Cleaned up some includes and reduced the dependency on Boost.Thread.
2016-08-09 04:20:49 +03:00
Andrey Semashev
f15e9d413c Fixed #12178. Stream formatting parameters could be preserved across different log records. 2016-07-17 16:31:24 +03:00
Andrey Semashev
1699351a8b Use the size_type typedef in the autotest. 2016-04-14 19:32:04 +03:00
Andrey Semashev
85092ef741 Added a new queue overflow policy which allows to return an error code if the queue is full. Added a test for the new policy. Changed the interface slightly to use the common message size typedef and use this typedef to check the message size before enqueueing it. 2016-04-14 19:32:04 +03:00
Andrey Semashev
6c49eccaa2 Added another thread to the test. Just to make it more likely to detect issues. 2016-04-14 19:32:04 +03:00
Andrey Semashev
38aeadfcc1 Fixed a few bugs in interprocess condition variable on Windows which caused infinite waits in some cases. 2016-04-14 19:32:04 +03:00
Andrey Semashev
95704fccca Added memory fences to guarantee that the thread-specific data is properly visible to other threads. 2016-04-14 19:32:04 +03:00
Andrey Semashev
5da7f8cf55 Added a test for from_native. 2016-04-14 19:32:04 +03:00
Andrey Semashev
05826649a0 Extracted platform-specific logic regarding interprocess object names to a separate object_name wrapper. Use this wrapper wherever interprocess queue name was used. Added a test for the wrapper. Extracted auto_handle to a separate header. 2016-04-14 19:32:04 +03:00
Andrey Semashev
48079e0fcb Renamed stop() and reset() to stop_local() and reset_local() to emphasize that the methods operate only on the local queue object. Added proper documentation for the class. 2016-04-14 19:32:04 +03:00
Andrey Semashev
89d56bc12a Compilation fixes on Windows. 2016-04-14 19:32:03 +03:00
Andrey Semashev
1aacc3e746 Fixed bugs, updated tests. 2016-04-14 19:32:03 +03:00
Andrey Semashev
2ad2ad2520 Added a check for throwing an exception on queue overflow. 2016-04-14 19:32:03 +03:00
Andrey Semashev
f47a77ab9b Reworked reliable message queue test. 2016-04-14 19:32:03 +03:00
Andrey Semashev
b38f3b915a Working on separating tests for the IPC sink backend and message queue. 2016-04-14 19:32:03 +03:00
Andrey Semashev
2a19a66559 Renamed sink_ipc_backend.cpp -> sink_text_ipc_mq_backend.cpp. Working on separating tests for the IPC sink backend and message queue. 2016-04-14 19:32:03 +03:00
Andrey Semashev
0cc56f385e Trim trailing spaces. 2016-04-14 19:32:02 +03:00
Lingxi-Li
8d9002cab8 Add text_ipc_message_queue_backend
This new sink backend supports logging messages to an interprocess
message queue.
2016-04-14 19:32:02 +03:00
Andrey Semashev
2f6facfdcd Silenced signed/unsigned mismatch warnings. 2016-02-25 21:26:04 +03:00
Andrey Semashev
30fcf0ef2d Renamed all uses of basic_string_ref to basic_string_view to follow Boost.Utility. 2015-12-23 01:58:20 +03:00
Andrey Semashev
8e4cd877ab Nonessential changes for testing. 2015-11-15 17:23:52 +03:00
Andrey Semashev
b7de827f23 Fixed compilation of character decorators. Added tests. 2015-09-26 19:20:07 +03:00
Andrey Semashev
44ef109505 Fixed #11541. Fixed compilation when native wchar_t type is disabled. Added a note of discouragement to the configuration section. 2015-08-23 20:30:30 +03:00
Andrey Semashev
7da193fde1 Fixed compilation of operator<< into a record ostream, when the operator right hand argument is not directly supported by formatting_ostream. Fixed #11549. 2015-08-23 17:27:20 +03:00
Andrey Semashev
ac70fa34c1 Removed use of auto_ptr. 2015-07-18 20:32:07 +03:00
Andrey Semashev
12fb58fd54 Removed unused typedef. 2015-07-06 11:59:58 +03:00
Andrey Semashev
3d5d5e31d0 Added tests for the to_log manipulator. Made generic operator<< for the formatting stream less attractive for the compiler. 2015-07-05 16:25:22 +03:00
Andrey Semashev
b2a3106a21 Trying to work around compilation failure with clang. 2015-06-01 16:00:08 +03:00
Andrey Semashev
bdf86442e5 Fixed operator<< for lvalue strings where character conversion is needed. 2015-06-01 00:10:57 +03:00
Andrey Semashev
d720a11e3b Fixed #11190. Constructing attribute value set from attribute sets or inserting elements could invalidate elements that were in the container. 2015-04-25 22:49:01 +03:00
Andrey Semashev
34e68c7b5a Ported from std::random_shuffle and std::rand to Boost.Random and custom random_shuffle implementation. 2015-03-29 20:12:58 +03:00
Andrey Semashev
f74a7df2df Fixed #11148. Fixed incorrect behavior of attribute_value_set::size() if a large number of attribute values are inserted into the set. 2015-03-28 19:04:31 +03:00
Andrey Semashev
18df30ed33 Followup for the previous commit. 2015-03-25 00:48:52 +03:00
Andrey Semashev
30ff0390ce Fixed #11106. In some cases inserted attribute set elements could invalidate the existing elements preventing them from being found. 2015-03-15 15:00:53 +03:00