jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Public Member Functions | Private Member Functions | Private Attributes | List of all members
jubatus::core::fv_converter::regexp_filter Class Reference

#include <null_regexp_filter.hpp>

Inheritance diagram for jubatus::core::fv_converter::regexp_filter:
Inheritance graph
Collaboration diagram for jubatus::core::fv_converter::regexp_filter:
Collaboration graph

Public Member Functions

void filter (const std::string &input, std::string &output) const
 
void filter (const std::string &input, std::string &output) const
 
void filter (const std::string &input, std::string &output) const
 
 regexp_filter (const std::string &regexp, const std::string &replace)
 
 regexp_filter (const std::string &regexp, const std::string &replace)
 
 regexp_filter (const std::string &regexp, const std::string &replace)
 
 ~regexp_filter ()
 
- Public Member Functions inherited from jubatus::core::fv_converter::string_filter
virtual ~string_filter ()
 

Private Member Functions

 regexp_filter ()
 
 regexp_filter ()
 
void replace (const std::string &input, const OnigRegion *region, std::ostream &out) const
 

Private Attributes

re2::RE2 re_
 
regex_t * reg_
 
std::string replace_
 

Detailed Description

Definition at line 29 of file null_regexp_filter.hpp.

Constructor & Destructor Documentation

jubatus::core::fv_converter::regexp_filter::regexp_filter ( const std::string &  regexp,
const std::string &  replace 
)
inline

Definition at line 31 of file null_regexp_filter.hpp.

References JUBATUS_EXCEPTION.

31  {
32  throw JUBATUS_EXCEPTION(
33  converter_exception("regexp support is disabled"));
34  }
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
jubatus::core::fv_converter::regexp_filter::regexp_filter ( const std::string &  regexp,
const std::string &  replace 
)
jubatus::core::fv_converter::regexp_filter::~regexp_filter ( )

Definition at line 63 of file onig_filter.cpp.

References reg_.

63  {
64  if (reg_) {
65  onig_free(reg_);
66  }
67 }
jubatus::core::fv_converter::regexp_filter::regexp_filter ( )
private
jubatus::core::fv_converter::regexp_filter::regexp_filter ( const std::string &  regexp,
const std::string &  replace 
)
jubatus::core::fv_converter::regexp_filter::regexp_filter ( )
private

Member Function Documentation

void jubatus::core::fv_converter::regexp_filter::filter ( const std::string &  input,
std::string &  output 
) const
virtual
void jubatus::core::fv_converter::regexp_filter::filter ( const std::string &  input,
std::string &  output 
) const
virtual
void jubatus::core::fv_converter::regexp_filter::filter ( const std::string &  input,
std::string &  output 
) const
inlinevirtual

Implements jubatus::core::fv_converter::string_filter.

Definition at line 36 of file null_regexp_filter.hpp.

36 {}
void jubatus::core::fv_converter::regexp_filter::replace ( const std::string &  input,
const OnigRegion *  region,
std::ostream &  out 
) const
private

Definition at line 69 of file onig_filter.cpp.

References JUBATUS_EXCEPTION, and replace_.

72  {
73  for (std::size_t i = 0; i < replace_.size(); ++i) {
74  char c = replace_[i];
75  if (c == '\\') {
76  ++i;
77  if (i > replace_.size() - 1) {
78  // This exception must not be called, because replace string is checked
79  // in the constructor
80  throw JUBATUS_EXCEPTION(converter_exception(
81  "invalid replacement expression. 0-9 or \\ are required after \\"));
82  }
83  c = replace_[i];
84  if (c == '\\') {
85  out << '\\';
86  } else if ('0' <= c && c <= '9') {
87  int group = c - '0';
88  std::size_t len = region->end[group] - region->beg[group];
89  out << input.substr(region->beg[group], len);
90  } else {
91  // This exception must not be called, because replace string is checked
92  // in the constructor
93  throw JUBATUS_EXCEPTION(converter_exception(
94  "invalid replacement expression. 0-9 or \\ are required after \\"));
95  }
96  } else {
97  out << c;
98  }
99  }
100 }
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79

Member Data Documentation

re2::RE2 jubatus::core::fv_converter::regexp_filter::re_
private

Definition at line 37 of file re2_filter.hpp.

regex_t* jubatus::core::fv_converter::regexp_filter::reg_
private

Definition at line 43 of file onig_filter.hpp.

Referenced by ~regexp_filter().

std::string jubatus::core::fv_converter::regexp_filter::replace_
private

Definition at line 44 of file onig_filter.hpp.

Referenced by replace().


The documentation for this class was generated from the following files: