StdAir Logo  0.45.1
C++ Standard Airline IT Object Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
swift::SReadline Class Reference

The readline library wrapper. More...

#include <stdair/ui/cmdline/SReadline.hpp>

List of all members.

Public Member Functions

 SReadline (const size_t Limit=DefaultHistoryLimit)
 Constructs the object, sets the completion function.
 SReadline (const std::string &historyFileName, const size_t Limit=DefaultHistoryLimit)
 Constructs the object, sets the completion function, loads history.
 ~SReadline ()
 Saves the session history (if the file name was provided) and destroys the object.
std::string GetLine (const std::string &Prompt)
 Gets a single line from a user.
template<typename Container >
std::string GetLine (const std::string &Prompt, Container &ReadTokens)
 Gets a single line from a user.
template<typename Container >
std::string GetLine (const std::string &Prompt, Container &ReadTokens, bool &BreakOut)
 Gets a single line from a user.
std::string GetLine (const std::string &Prompt, bool &BreakOut)
 Gets a single line from a user.
template<typename ContainerType >
void GetHistory (ContainerType &Container)
 Fills the given container with the current history list.
bool SaveHistory (std::ostream &OS)
 Saves the history to the given file stream.
bool SaveHistory (const std::string &FileName)
 Saves the history to the given file.
void ClearHistory ()
 Clears the history. Does not affect the file where the previous session history is saved.
bool LoadHistory (std::istream &IS)
 Loads a history from a file stream.
bool LoadHistory (const std::string &FileName)
 Loads a history from the given file.
template<typename ContainerType >
void RegisterCompletions (const ContainerType &Container)
 Allows to register custom completers.
void SetKeymap (SKeymap &NewKeymap)
 Sets the given keymap.

Detailed Description

The readline library wrapper.

Attention: It is not thread safe! Supports: editing, history, custom completers

Definition at line 424 of file SReadline.hpp.


Constructor & Destructor Documentation

swift::SReadline::SReadline ( const size_t  Limit = DefaultHistoryLimit) [inline]

Constructs the object, sets the completion function.

Parameters:
LimitHistory size

Definition at line 431 of file SReadline.hpp.

swift::SReadline::SReadline ( const std::string &  historyFileName,
const size_t  Limit = DefaultHistoryLimit 
) [inline]

Constructs the object, sets the completion function, loads history.

Parameters:
historyFileNameFile name to load history from
LimitHistory size

Definition at line 446 of file SReadline.hpp.

References LoadHistory().

Saves the session history (if the file name was provided) and destroys the object.

Definition at line 462 of file SReadline.hpp.

References SaveHistory().


Member Function Documentation

std::string swift::SReadline::GetLine ( const std::string &  Prompt) [inline]

Gets a single line from a user.

Parameters:
PromptA printed prompt
Returns:
A string which was actually inputed

Definition at line 473 of file SReadline.hpp.

Referenced by GetLine().

template<typename Container >
std::string swift::SReadline::GetLine ( const std::string &  Prompt,
Container &  ReadTokens 
) [inline]

Gets a single line from a user.

Parameters:
PromptA printed prompt
ReadTokensA user inputed string splitted into tokens. The container is cleared first
Returns:
A string which was actually inputed

Definition at line 487 of file SReadline.hpp.

References GetLine().

template<typename Container >
std::string swift::SReadline::GetLine ( const std::string &  Prompt,
Container &  ReadTokens,
bool &  BreakOut 
) [inline]

Gets a single line from a user.

Parameters:
PromptA printed prompt
BreakOutit is set to true if the EOF found
ReadTokensA user inputed string splitted into tokens. The container is cleared first
Returns:
A string which was actually inputed

Definition at line 502 of file SReadline.hpp.

References GetLine().

std::string swift::SReadline::GetLine ( const std::string &  Prompt,
bool &  BreakOut 
) [inline]

Gets a single line from a user.

Parameters:
PromptA printed prompt
BreakOutit is set to true if the EOF found
Returns:
A string which was actually inputed

Definition at line 517 of file SReadline.hpp.

template<typename ContainerType >
void swift::SReadline::GetHistory ( ContainerType &  Container) [inline]

Fills the given container with the current history list.

Does not clear the given container

Definition at line 552 of file SReadline.hpp.

bool swift::SReadline::SaveHistory ( std::ostream &  OS) [inline]

Saves the history to the given file stream.

Parameters:
OSoutput file stream
Returns:
true if success

Definition at line 564 of file SReadline.hpp.

Referenced by SaveHistory(), and ~SReadline().

bool swift::SReadline::SaveHistory ( const std::string &  FileName) [inline]

Saves the history to the given file.

Parameters:
FileNameFile name to save the history to
Returns:
true if success

Definition at line 581 of file SReadline.hpp.

References SaveHistory().

void swift::SReadline::ClearHistory ( ) [inline]

Clears the history. Does not affect the file where the previous session history is saved.

Definition at line 594 of file SReadline.hpp.

Referenced by LoadHistory().

bool swift::SReadline::LoadHistory ( std::istream &  IS) [inline]

Loads a history from a file stream.

Parameters:
ISInput file stream
Returns:
true if success

Definition at line 604 of file SReadline.hpp.

References ClearHistory().

Referenced by LoadHistory(), and SReadline().

bool swift::SReadline::LoadHistory ( const std::string &  FileName) [inline]

Loads a history from the given file.

Parameters:
FileNameFile name to be load from
Returns:
true if success

Definition at line 629 of file SReadline.hpp.

References LoadHistory().

template<typename ContainerType >
void swift::SReadline::RegisterCompletions ( const ContainerType &  Container) [inline]

Allows to register custom completers.

Supports a special keyword: file. It means to use the standard file name completer.

For example the given container elements could be as follows:

  • command1 opt1
  • command1 opt2 file
  • command2
  • command2 opt1

Each container element must describe a single possible command line. The container element must have a conversion to std::string operator.

Parameters:
ContainerA container which has all the user possible commands.

Definition at line 658 of file SReadline.hpp.

void swift::SReadline::SetKeymap ( SKeymap NewKeymap) [inline]

Sets the given keymap.

Parameters:
NewKeymapThe keymap that should be used from now.

Definition at line 675 of file SReadline.hpp.


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