• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • KDE Support
  • Sitemap
  • Contact Us
 

qca

QCA::Console

QCA::Console Class Reference
[QCA user API]

QCA Console system More...

#include <QtCrypto>

Inheritance diagram for QCA::Console:
Inheritance graph
[legend]

List of all members.

Public Types

enum  ChannelMode { Read, ReadWrite }
enum  TerminalMode { Default, Interactive }
enum  Type { Tty, Stdio }

Public Member Functions

 Console (Type type, ChannelMode cmode, TerminalMode tmode, QObject *parent=0)
 ~Console ()
QByteArray bytesLeftToRead ()
QByteArray bytesLeftToWrite ()
ChannelMode channelMode () const
void release ()
TerminalMode terminalMode () const
Type type () const

Static Public Member Functions

static bool isStdinRedirected ()
static bool isStdoutRedirected ()
static Console * stdioInstance ()
static Console * ttyInstance ()

Detailed Description

QCA Console system

QCA provides an API for asynchronous, event-based access to the console and stdin/stdout, as these facilities are otherwise not portable. The primary use of this system within QCA is for passphrase prompting in command-line applications, using the tty console type.

How it works: Create a Console object for the type of console desired, and then use ConsoleReference to act on the console. Only one ConsoleReference may operate on a Console at a time.

A Console object takes over either the physical console (Console::Tty type) or stdin/stdout (Console::Stdio type). Only one of each type may be created at a time.

Whenever code is written that needs a tty or stdio object, the code should first call one of the static methods (ttyInstance() or stdioInstance()) to see if a console object for the desired type exists already. If the object exists, use it. If it does not exist, the rule is that the relevant code should create the object, use the object, and then destroy the object when the operation is completed.

By following the above rule, you can write code that utilizes a console without the application having to create some master console object for you. Of course, if the application has created a console then it will be used.

The reason why there is a master console object is that it is not guaranteed that all I/O will survive creation and destruction of a console object. If you are using the Stdio Type, then you probably want a long-lived console object. It is possible to capture unprocessed I/O by calling bytesLeftToRead or bytesLeftToWrite. However, it is not expected that general console-needing code will call these functions when utilizing a temporary console. Thus, an application developer would need to create his own console object, invoke the console-needing code, and then do his own extraction of the unprocessed I/O if necessary. Another reason to extract unprocessed I/O is if you need to switch from Console back to standard functions (e.g. fgets() ).

Definition at line 552 of file qca_support.h.


Member Enumeration Documentation

enum QCA::Console::ChannelMode

The type of I/O to use with the console object.

Enumerator:
Read 

Read only (equivalent to stdin).

ReadWrite 

Read/write (equivalent to stdin and stdout).

Definition at line 567 of file qca_support.h.

enum QCA::Console::TerminalMode

The nature of the console operation.

Enumerator:
Default 

use default terminal settings

Interactive 

char-by-char input, no echo

Definition at line 576 of file qca_support.h.

enum QCA::Console::Type

The type of console object.

Enumerator:
Tty 

physical console

Stdio 

stdin/stdout

Definition at line 559 of file qca_support.h.


Constructor & Destructor Documentation

QCA::Console::Console ( Type  type,
ChannelMode  cmode,
TerminalMode  tmode,
QObject *  parent = 0 
)

Standard constructor.

Note that library code should not create a new Console object without checking whether there is already a Console object of the required Type. See the main documentation for Console for the rationale for this.

Parameters:
type the Type of Console object to create
cmode the ChannelMode (I/O type) to use
tmode the TerminalMode to use
parent the parent object for this object
See also:
ttyInstance() and stdioInstance for static methods that allow you to test whether there is already a Console object of the required Type, and if there is, obtain a reference to that object.

Definition at line 427 of file console.cpp.

QCA::Console::~Console (  ) 

Definition at line 500 of file console.cpp.


Member Function Documentation

QByteArray QCA::Console::bytesLeftToRead (  ) 

Obtain remaining data from the Console, awaiting a read operation.

Definition at line 567 of file console.cpp.

QByteArray QCA::Console::bytesLeftToWrite (  ) 

Obtain remaining data from the Console, awaiting a write operation.

Definition at line 572 of file console.cpp.

Console::ChannelMode QCA::Console::channelMode (  )  const

The ChannelMode of this Console object.

Definition at line 516 of file console.cpp.

bool QCA::Console::isStdinRedirected (  )  [static]

Test whether standard input is redirected.

See also:
type() and channelMode()

Definition at line 526 of file console.cpp.

bool QCA::Console::isStdoutRedirected (  )  [static]

Test whether standard output is redirected.

See also:
type() and channelMode()

Definition at line 539 of file console.cpp.

void QCA::Console::release (  ) 

Release the Console.

This allows access to buffers containing any remaining data

Definition at line 562 of file console.cpp.

Console * QCA::Console::stdioInstance (  )  [static]

The current stdio-type console object.

Returns:
null if there is no current Console of this type, otherwise the Console to use

Definition at line 557 of file console.cpp.

Console::TerminalMode QCA::Console::terminalMode (  )  const

The TerminalMode of this Console object.

Definition at line 521 of file console.cpp.

Console * QCA::Console::ttyInstance (  )  [static]

The current terminal-type console object.

Returns:
null if there is no current Console of this type, otherwise the Console to use

Definition at line 552 of file console.cpp.

Console::Type QCA::Console::type (  )  const

The Type of this Console object.

Definition at line 511 of file console.cpp.


The documentation for this class was generated from the following files:
  • qca_support.h
  • console.cpp

qca

Skip menu "qca"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

KDE Support

Skip menu "KDE Support"
  • akonadi
  • Decibel
  • grantlee
  • kdewin
  • phonon
  •     Backend
  • polkit-qt
  • qca
  • qimageblitz
  • soprano
  • strigi
  •     searchclient
  •     streamanalyzer
  •     streams
Generated for KDE Support by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal