ewmscp  ..
Public Member Functions | List of all members
mapOption< T > Class Template Reference
Inheritance diagram for mapOption< T >:
[legend]
Collaboration diagram for mapOption< T >:
[legend]

Public Member Functions

template<class ... Types>
 mapOption (Types ... args)
 
void fWriteValue (std::ostream &aStream) const override
 write textual representation of value to a std::ostream More...
 
- Public Member Functions inherited from options::map< T >
 map (char aShortName, const std::string &aLongName, const std::string &aExplanation, std::initializer_list< typename std::map< std::string, T > ::value_type > aDefault={})
 
 map (const map &)=delete
 
void fWriteCfgLines (std::ostream &aStream, const char *aPrefix) const override
 
void fWriteValue (std::ostream &aStream) const override
 write textual representation of value to a std::ostream More...
 
std::enable_if< std::is_same< std::map< typename std::remove_const< typename std::map< std::string, T > ::value_type::first_type >::type, typename std::map< std::string, T > ::value_type::second_type >, C >::value, typename C::iterator >::type insertOrUpdate (typename C::value_type aPair)
 
std::enable_if< !std::is_same< std::map< typename std::remove_const< typename std::map< std::string, T > ::value_type::first_type >::type, typename std::map< std::string, T > ::value_type::second_type >, C >::value, typename std::map< std::string, T > ::iterator >::type insertOrUpdate (typename C::value_type aPair)
 
void fSetMe (std::istream &aStream, const internal::sourceItem &aSource) override
 function to set the value from a string, remembering the source More...
 
void fCheckRange () const override
 
std::add_rvalue_reference< std::add_const< std::map< std::string, T > > >::type fGetValue () const
 
- Public Member Functions inherited from options::internal::baseForMap< T >
 baseForMap (char aShortName, std::string aLongName, std::string aExplanation, short aNargs)
 
void fAddSource (const T *aValueLocation, const internal::sourceItem &aSource)
 
const internal::sourceItem fGetSource (const T *aValueLocation) const
 
bool fIsSet () const override
 check if this option was set, regardless of from command line or config file More...
 
bool fIsContainer () const override
 
void fAddDefaultFromStream (std::istream &aStream) override
 special for use in the shellScriptOptionParser More...
 
- Public Member Functions inherited from options::internal::typed_base< T >
 typed_base (Types ... args)
 
virtual void fAddToRange (rangeValueType aValue)
 add a value to the range of allowed values More...
 
std::enable_if<(!std::is_same< rangeValueType, std::string >::value) &&std::is_same< TT, std::string >::value, void >::type fAddToRange (const TT &aString)
 
void fAddToRange (InputIt aBegin, InputIt aEnd)
 add values from the iterator range [aBegin,aEnd) to the range of allowed values More...
 
void fAddToRange (const std::vector< TT > &aRange)
 add values from a vector (may be given as initializer list) to the range of allowed values More...
 
void fAddToRangeFromStream (std::istream &aStream) override
 
void fWriteRange (std::ostream &aStream) const override
 
virtual void fCheckValueForRange (const compareValueType &aValue) const
 
- Public Member Functions inherited from options::base
 base (char aShortName, const std::string &aLongName, const std::string &aExplanation, short aNargs)
 construct an object of type base More...
 
virtual ~base ()
 
virtual void fRequire (const base *aOtherOption)
 require aOtherOption when this option is set More...
 
virtual void fRequire (std::vector< const base * > aOtherOptions)
 add vector of other options, particlularly nice for use with initializer list More...
 
template<typename InputIt >
void fRequire (InputIt aBegin, InputIt aEnd)
 add all options from the pair of iterators [aBegin,aEnd) to the list of required options More...
 
virtual void fForbid (const base *aOtherOption)
 forbid aOtherOption when this option is set More...
 
virtual void fForbid (std::vector< const base * > aOtherOptions)
 add vector of other options, particlularly nice for use with initializer list More...
 
template<typename InputIt >
void fForbid (InputIt aBegin, InputIt aEnd)
 add all options from the pair of iterators [aBegin,aEnd) to the list of forbidden options More...
 
const std::string & fGetLongName () const
 returns long name of option, usually only for internal use. More...
 

Additional Inherited Members

- Public Types inherited from options::internal::typed_base< T >
typedef T valueType
 
typedef std::conditional< std::is_same< T, const char * >::value||false, std::string, T >::type rangeValueType
 
typedef std::conditional< false, std::string, T >::type compareValueType
 
- Protected Member Functions inherited from options::base
virtual void fSetMeNoarg (const internal::sourceItem &)
 
virtual void fSetSource (const internal::sourceItem &aSource)
 remember the source that provided the value, e.g. commandline or a config file More...
 
virtual void fCheckRange () const =0
 
void fSetPreserveWorthyStuff (std::vector< std::string > *aStuff)
 
void fHide ()
 hide option, will be respected by help More...
 
bool fIsHidden () const
 
void fDisable ()
 disable option by removing it from the maps More...
 
- Static Protected Member Functions inherited from options::base
static std::map< std::string, base * > & fGetOptionMap ()
 
static std::map< char, base * > & fGetShortOptionMap ()
 
- Protected Attributes inherited from options::internal::baseForMap< T >
std::map< const T *, const internal::sourceItemlSources
 
- Protected Attributes inherited from options::internal::typed_base< T >
std::multiset< rangeValueTypelRange
 
- Protected Attributes inherited from options::base
char lShortName
 
const std::string lLongName
 
const std::string lExplanation
 
internal::sourceItem lSource
 
short lNargs
 
bool lHidden
 
std::vector< std::string > * lPreserveWorthyStuff
 
std::vector< const base * > lRequiredOptions
 
std::vector< const base * > lForbiddenOptions
 

Detailed Description

template<typename T>
class mapOption< T >

Definition at line 40 of file shellScriptOptionParser.cpp.

Constructor & Destructor Documentation

◆ mapOption()

template<typename T >
template<class ... Types>
mapOption< T >::mapOption ( Types ...  args)
inline

Definition at line 42 of file shellScriptOptionParser.cpp.

42  :
43  options::map<T>(args...) {
44  };

Member Function Documentation

◆ fWriteValue()

template<typename T >
void mapOption< T >::fWriteValue ( std::ostream &  aStream) const
inlineoverridevirtual

write textual representation of value to a std::ostream

Implements options::base.

Definition at line 45 of file shellScriptOptionParser.cpp.

45  {
46  aStream << "; unset " << this->fGetLongName() << "; declare -A " << this->fGetLongName() << "=(";
47  for (const auto& item : *this) {
48  aStream << " [" << item.first << "]=";
49  using options::escapedIO::operator<<;
50  aStream << item.second;
51  }
52  aStream << " )";
53  };

References options::base::fGetLongName().

Here is the call graph for this function:

The documentation for this class was generated from the following file:
options::base::fGetLongName
const std::string & fGetLongName() const
returns long name of option, usually only for internal use.
Definition: Options.h:273
options::map< T >