FBB::Tty(3bobcat)
Controls echoing of characters
(libbobcat-dev_6.06.02)
2005-2024
NAME
FBB::Tty - Controls echoing of characters entered at the terminal
SYNOPSIS
    #include <bobcat/tty>
    Linking option: -lbobcat
DESCRIPTION
    Tty(3bobcat) objects can be used to control the echoing of characters
entered at the terminal (usually at /dev/tty). Directly reading from
/dev/tty allows programs to read information (e.g., passwords or pass
phrases) even if the standard input stream is redirected to a file. Unless
redirected, std::cin is connected to /dev/tty.
Tty(3bobcat) objects may be used as stand-alone objects or (usually
anonymous) Tty(3bobcat) objects may be inserted into or extracted from
streams. When inserting or extracting objects the involved streams are not
affected; only the echoing of characters entered at /dev/tty is
manipulated.
Tty(3bobcat)'s destructor does not reset the echo-state of
/dev/tty to its original value. If that is required a Tty(3bobcat)
object must be created first, calling its echo(Tty::RESET) member at the
appropriate time.
NAMESPACE
    FBB
    All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
    -
ENUM
The enum EchoType requests the type of echo-handling:
    
    -  RESET is used to reset /dev/tty's state to the actual state
        when a Tty(3bobcat) object was constructed
    
-  ON is used to activate echoing of characters entered at
        /dev/tty.
    
-  OFF is used to suppress echoing of characters entered at
        /dev/tty.
    
CONSTRUCTORS
    
    -  Tty():
 The current state of /dev/tty is saved.
 
-  Tty(EchoType type):
 The current state of /dev/tty is saved, and the object's member
        echo(type) is called.
Copy and move constructors (and assignment operators) are available.
OVERLOADED OPERATORS
    
    -  std::istream &operator>>(std::istream &in, Tty const &tty):
 The extraction operator does not affect in, but /dev/tty's
        state is set according to the way the tty object was constructed.
 
-  std::ostream &operator<<(std::ostream &out, Tty const &tty):
 The insertion operator does not affect out, but /dev/tty's
        state is set according to the way the tty object was constructed.
MEMBER FUNCTION
    -  echo(EchoType type):
 /Dev/tty's state is set according to the EchoType value that is
        passed to this member.
EXAMPLE
#include <iostream>
#include <string>
#include <bobcat/tty>
using namespace std;
using namespace FBB;
int main()
{
    cout << "Enter some text (not echoed): " << Tty(Tty::OFF);
    string line;
    getline(cin, line);
    cout << "\n"
            "You entered: `" << line << "'\n";
    cout << "Enter some text (echoed): ";
    getline(cin >> Tty(Tty::ON), line);
    cout << "You entered: `" << line << "'\n";
}
FILES
    bobcat/tty - defines the class interface
SEE ALSO
    bobcat(7), onekey(3bobcat)
BUGS
    None Reported.
BOBCAT PROJECT FILES
    -  https://fbb-git.gitlab.io/bobcat/: gitlab project page;
    
-  bobcat_6.06.02-x.dsc: detached signature;
    
-  bobcat_6.06.02-x.tar.gz: source archive;
    
-  bobcat_6.06.02-x_i386.changes: change log;
    
-  libbobcat1_6.06.02-x_*.deb: debian package containing the
            libraries;
    
-  libbobcat1-dev_6.06.02-x_*.deb: debian package containing the
            libraries, headers and manual pages;
    
BOBCAT
    Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
COPYRIGHT
    This is free software, distributed under the terms of the
    GNU General Public License (GPL).
AUTHOR
    Frank B. Brokken (f.b.brokken@rug.nl).