LCOV - code coverage report
Current view: top level - usr/include/boost/algorithm/string/detail - find_iterator.hpp (source / functions) Hit Total Coverage
Test: bitcoincash_test.info Lines: 8 8 100.0 %
Date: 2018-04-13 15:12:50 Functions: 2 2 100.0 %

          Line data    Source code
       1             : //  Boost string_algo library find_iterator.hpp header file  ---------------------------//
       2             : 
       3             : //  Copyright Pavol Droba 2002-2003.
       4             : //
       5             : // Distributed under the Boost Software License, Version 1.0.
       6             : //    (See accompanying file LICENSE_1_0.txt or copy at
       7             : //          http://www.boost.org/LICENSE_1_0.txt)
       8             : 
       9             : //  See http://www.boost.org/ for updates, documentation, and revision history.
      10             : 
      11             : #ifndef BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
      12             : #define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
      13             : 
      14             : #include <boost/algorithm/string/config.hpp>
      15             : #include <boost/range/iterator_range_core.hpp>
      16             : #include <boost/iterator/iterator_facade.hpp>
      17             : #include <boost/iterator/iterator_categories.hpp>
      18             : #include <boost/function.hpp>
      19             : 
      20             : namespace boost {
      21             :     namespace algorithm { 
      22             :         namespace detail {
      23             : 
      24             : //  find_iterator base -----------------------------------------------//
      25             : 
      26             :             // Find iterator base
      27             :             template<typename IteratorT>
      28             :             class find_iterator_base
      29             :             {
      30             :             protected:
      31             :                 // typedefs
      32             :                 typedef IteratorT input_iterator_type;
      33             :                 typedef iterator_range<IteratorT> match_type;
      34             :                 typedef function2<
      35             :                     match_type, 
      36             :                     input_iterator_type, 
      37             :                     input_iterator_type> finder_type;
      38             :                 
      39             :             protected:
      40             :             // Protected construction/destruction
      41             : 
      42             :                 // Default constructor
      43        2796 :                 find_iterator_base() {};
      44             :                 // Copy construction
      45             :                 find_iterator_base( const find_iterator_base& Other ) :
      46       21868 :                     m_Finder(Other.m_Finder) {}
      47             :                 
      48             :                 // Constructor
      49             :                 template<typename FinderT>
      50        1398 :                 find_iterator_base( FinderT Finder, int ) :
      51        2796 :                     m_Finder(Finder) {}
      52             : 
      53             :                 // Destructor
      54       49328 :                 ~find_iterator_base() {}
      55             : 
      56             :                 // Find operation
      57             :                 match_type do_find( 
      58             :                     input_iterator_type Begin,
      59             :                     input_iterator_type End ) const
      60             :                 {
      61       18697 :                     if (!m_Finder.empty())
      62             :                     {
      63       18697 :                         return m_Finder(Begin,End);
      64             :                     }
      65             :                     else
      66             :                     {
      67             :                         return match_type(End,End);
      68             :                     }
      69             :                 }
      70             : 
      71             :                 // Check
      72             :                 bool is_null() const
      73             :                 {
      74       37590 :                     return m_Finder.empty();
      75             :                 }
      76             : 
      77             :             private:
      78             :                 // Finder
      79             :                 finder_type m_Finder;
      80             :             };
      81             : 
      82             :        } // namespace detail
      83             :     } // namespace algorithm
      84             : } // namespace boost
      85             : 
      86             : 
      87             : #endif  // BOOST_STRING_FIND_ITERATOR_DETAIL_HPP

Generated by: LCOV version 1.12