Go to the documentation of this file.
12 #ifndef WIBBLE_CONSUMER_H
13 #define WIBBLE_CONSUMER_H
19 template<
typename T >
23 virtual void consume(
const T &a ) = 0;
28 template<
typename T,
typename W >
35 return this->
wrapped().consume( a );
39 while ( !s.empty() ) {
46 template<
typename T,
typename Self >
49 Self &
self() {
return *
static_cast< Self *
>( this ); }
50 const Self &
self()
const {
return *
static_cast< const Self *
>( this ); }
54 bool operator<=(
const Self &o )
const {
return this <= &o; }
64 template<
typename T >
65 struct Consumer: Amorph< Consumer< T >, ConsumerInterface< T > >,
66 ConsumerMixin< T, Consumer< T > >
79 return this->implementation()->consume( a );
89 template<
typename T,
typename Out >
101 template<
typename R >
107 template<
typename Out >
114 template<
typename T >
116 return consumer( std::inserter( c, c.end() ) );
120 template<
typename T >
Iterator< typename I::value_type > iterator(I i)
Definition: iterator.h:123
Definition: consumer.h:29
Definition: options.h:161
void value_type
Definition: consumer.h:70
std::output_iterator_tag iterator_category
Definition: consumer.h:51
int withCommands(int argc, const char *argv[])
Definition: commandline-demo.cpp:7
const std::string & name() const
Definition: engine.h:107
An interface implemented by all morph classes.
Definition: amorph.h:91
Consumer< T > & operator++()
Definition: consumer.h:55
T ConsumedType
Definition: consumer.h:52
Consumer()
Definition: consumer.h:76
void outputHelp(std::ostream &out)
Definition: parser.cpp:10
BoolOption * version
Definition: parser.h:80
Out m_out
Definition: consumer.h:98
int main(int argc, const char *argv[])
Definition: commandline-demo.cpp:80
Consumer< typename R::ConsumedType > consumerMorph(R r)
Definition: consumer.h:102
virtual void consume(Range< T > s)
Definition: consumer.h:38
void add(const std::string &alias, Engine *o)
Definition: engine.cpp:39
virtual ~ConsumerInterface()
Definition: consumer.h:25
ConsumerMorph(const W &w)
Definition: consumer.h:32
Consumer< typename Out::container_type::value_type > consumer(Out out)
Definition: consumer.h:108
std::string longDescription
Definition: engine.h:224
Definition: consumer.h:17
void consume(const T &a)
Definition: consumer.h:93
Parser for commandline arguments, with builting help functions and manpage generation,...
Definition: parser.h:115
std::string usage
Definition: engine.h:222
bool parse(int argc, const char *argv[])
Definition: parser.cpp:61
T head() const
Definition: range.h:163
Template Unit Tests Framework for C++.
Definition: tut-main.cpp:6
int main(int argc, char **argv)
Definition: test-main.h:257
Consumer< T > & operator=(const T &a)
Definition: consumer.h:58
Definition: consumer.h:20
const Wrapped & wrapped() const
Definition: amorph.h:181
BoolOption * help
Definition: parser.h:79
Option * add(Option *o)
Definition: options.h:368
Engine * addEngine(const std::string &name, const std::string &usage=std::string(), const std::string &description=std::string(), const std::string &longDescription=std::string())
Create a Engine and add it to this engine as a command.
Definition: engine.h:182
Parse commandline options.
Definition: engine.h:38
ConsumerMorph()
Definition: consumer.h:31
Group related commandline options.
Definition: options.h:359
Consumer< T > & operator++(int)
Definition: consumer.h:56
bool operator<=(const Self &o) const
Definition: consumer.h:54
T InputType
Definition: consumer.h:22
void consume(const T &a)
Definition: consumer.h:78
virtual const char * type() const
Get a string tag identifying the exception type.
Definition: exception.h:190
ConsumerFromIterator(Out out)
Definition: consumer.h:92
virtual const std::string & fullInfo() const
Format in a string all available information about the exception.
Definition: exception.h:205
bool boolValue() const
Definition: options.h:153
Base class for all exceptions.
Definition: exception.h:179
Consumer< T > & operator*()
Definition: consumer.h:57
void reference
Definition: consumer.h:73
std::string description
Definition: engine.h:223
Definition: consumer.h:90
Boolean option.
Definition: options.h:134
StringOption * manpage
Definition: parser.h:108
void pointer
Definition: consumer.h:72
virtual void consume(const T &a)
Definition: consumer.h:34
Consumer(const MorphInterface< ConsumerInterface< T > > &i)
Definition: consumer.h:75
virtual void consume(const T &a)=0
bool boolValue() const
Definition: options.h:210
Definition: consumer.h:47
file(GLOB TEST_SOURCES test_ *.cpp) ADD_CUSTOM_TARGET(check COMMAND make libwibble-test &&$
Definition: tests/CMakeLists.txt:3
project(wibble) include(test.cmake) include(CheckCXXSourceCompiles) check_cxx_source_compiles(" int main()
Definition: CMakeLists.txt:1
void difference_type
Definition: consumer.h:71
void usage(ostream &out, const string &argv0)
Definition: commandline-demo.cpp:75
Consumer< T > & operator=(const T &a)
Definition: consumer.h:82
Amorph< Consumer< T >, ConsumerInterface< T > > Super
Definition: consumer.h:68
Engine * foundCommand() const
Return the command that has been found in the commandline, or NULL if none have been found.
Definition: engine.h:215