Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3375ab7

Browse files
author
mikhail_beris
committed
Implementing to_lower transformation.
1 parent9e2824e commit3375ab7

File tree

3 files changed

+95
-1
lines changed

3 files changed

+95
-1
lines changed

‎boost/network/message/transformers.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
*/
1414
#include<boost/network/message/transformers/selectors.hpp>
1515
#include<boost/network/message/transformers/to_upper.hpp>
16+
#include<boost/network/message/transformers/to_lower.hpp>
1617

1718
#include<boost/type_traits.hpp>
1819

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
2+
// Copyright Dean Michael Berris 2007.
3+
// Distributed under the Boost Software License, Version 1.0.
4+
// (See accompanying file LICENSE_1_0.txt or copy at
5+
// http://www.boost.org/LICENSE_1_0.txt)
6+
7+
#ifndef __NETWORK_MESSAGE_TRANSFORMERS_TO_LOWER_HPP__
8+
#define__NETWORK_MESSAGE_TRANSFORMERS_TO_LOWER_HPP__
9+
10+
#include<boost/algorithm/string.hpp>
11+
12+
/** to_lower.hpp
13+
*
14+
* Implements the to_lower transformer. This applies
15+
* the to_lower string algorithm to a string, which
16+
* is selected by the appropriate selector.
17+
*
18+
* This defines a type, to be applied using template
19+
* metaprogramming on the selected string target.
20+
*/
21+
namespaceboost {namespacenetwork {
22+
23+
namespaceimpl {
24+
25+
template<classSelector>
26+
structto_lower_transformer { };
27+
28+
template<>
29+
structto_lower_transformer<selectors::source_selector> {
30+
template<classTag>
31+
voidoperator() (basic_message<Tag> & message_)const {
32+
boost::to_lower(message_.source());
33+
};
34+
35+
protected:
36+
~to_lower_transformer() { };
37+
};
38+
39+
template<>
40+
structto_lower_transformer<selectors::destination_selector> {
41+
template<classTag>
42+
voidoperator() (basic_message<Tag> & message_)const {
43+
boost::to_lower(message_.destination());
44+
};
45+
46+
protected:
47+
~to_lower_transformer() { };
48+
};
49+
50+
};// namespace impl
51+
52+
namespacedetail {
53+
structto_lower_placeholder_helper;
54+
};
55+
56+
detail::to_lower_placeholder_helperto_lower_(detail::to_lower_placeholder_helper);
57+
58+
namespacedetail {
59+
60+
structto_lower_placeholder_helper {
61+
template<classSelector>
62+
structtype :publicimpl::to_lower_transformer<Selector> { };
63+
private:
64+
to_lower_placeholder_helper() {};
65+
to_lower_placeholder_helper(to_lower_placeholder_helperconst &) {};
66+
friend to_lower_placeholder_helperboost::network::to_lower_(to_lower_placeholder_helper);
67+
};
68+
69+
};
70+
71+
typedefdetail::to_lower_placeholder_helper (*to_lower_placeholder)(detail::to_lower_placeholder_helper);
72+
73+
inline detail::to_lower_placeholder_helperto_lower_(detail::to_lower_placeholder_helper) {
74+
returndetail::to_lower_placeholder_helper();
75+
};
76+
77+
};// namespace network
78+
79+
};// namespace boost
80+
81+
#endif// __NETWORK_MESSAGE_TRANSFORMERS_TO_LOWER_HPP__
82+

‎libs/network/test/message_transform_test.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include<boost/network.hpp>
1010
#include<algorithm>
1111

12-
BOOST_AUTO_TEST_CASE (message_transform_tolower ) {
12+
BOOST_AUTO_TEST_CASE (message_transform_toupper ) {
1313
usingnamespaceboost::network;
1414

1515
message msg;
@@ -18,3 +18,14 @@ BOOST_AUTO_TEST_CASE ( message_transform_tolower ) {
1818
msg <<transform(to_upper_, source_);
1919
BOOST_CHECK_EQUAL (source(msg),"ME" );
2020
};
21+
22+
BOOST_AUTO_TEST_CASE ( message_transform_tolower ) {
23+
usingnamespaceboost::network;
24+
25+
message msg;
26+
msg <<source("ME");
27+
BOOST_CHECK_EQUAL (source(msg),"ME" );
28+
msg <<transform(to_lower_, source_);
29+
BOOST_CHECK_EQUAL (source(msg),"me" );
30+
};
31+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp