バナーをクリックすれば目次に戻ります

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.


RWvostream

RWvostream RWvios

形式

#include <rw/vstream.h>

説明

このクラスは抽象基底クラスです。記憶書式に依存しない基本関数や演算子、およびその配列を検索するためのインタフェースを提供します。これに対応する RWvistream は、これらの基本的な特徴の変数の記憶に対するインタフェース全般を提供します。

RWvistreamRWvostream のインタフェースは書式に依存していないため、ユーザーが実際の変数の記憶および復元方法を指定する必要はありません。それは派生クラスが決めることです。これは、オペレーティングシステムに依存しない ASCII 形式 (クラス RWpistreamRWpostream)、バイナリ形式 (クラス RWbistreamRWbostream)、またはユーザー独自の形式 (ネットワークとのインタフェースなど) を使用して行われます。このクラスは抽象基底クラスであるため、実際に処理方法を強制する手段はありません。ここでは、RWvistream RWvostream から派生したクラスがとる動作モデルについて説明しています。

変数を空白で区切る必要はありません。空白やパケットブレーク、あるいは最終的な出力先に合ったもので変数を区切るのは、派生クラスの仕事です。変数は、個々に、あるいは同種データから成るベクトルとして出力ストリームに挿入され、挿入されたときと同じ順序で RWvistream を使用して復元されます。

文字の記憶および検索については、多少説明を必要とします。文字は、英数字、制御文字、あるいはリテラル数を表すものと考えられます。一般に、多重定義された挿入 (<<)、抽出演算子 (>>) は、記号としての意味を持っている文字を格納したり、復元しようとします。つまり、ターゲットマシン上の表現がどのようなものであれ、復帰改行文字を格納すれば復帰改行文字として復元されます。一方、メンバー関数 get()put() は、文字を数そのものとして扱い、その値を保存します。RWpostream を参照してください。

持続性

なし

#include <rw/vstream.h>
void storeStuff( RWvostream& str) {
   int i = 5;
   double d = 22.5;
   char string[] = "A string with \t tabs and a newline\n";
   str << i;        // 整数を格納する
   str << d;        // 倍精度実数を格納する
   str << string;   // 文字列を格納する

   if(str.fail()) cerr << "Oh, oh, bad news.\n";
}

公開デストラクタ

virtual ~RWvostream();

この仮想デストラクタにより、特殊化クラスは、自分が割り当てた資源を解放することができます。

公開演算子

virtual RWvostream&
operator<<(const char* s) = 0;

s から始まる文字列を出力ストリームに格納します。文字列は、ヌル文字で終了するものとみなされます。

virtual RWvostream&
operator<<(const wchar_t* ws) = 0;

ws から始まるワイド文字列を出力ストリームに格納します。文字列は、ワイドヌル文字で終了するものとみなされます。

virtual RWvostream&
operator<<(char c) = 0;

char c を出力ストリームに格納します。c は数ではなく文字として扱います。

virtual RWvostream&
operator<<(wchar_t wc) = 0;

wchar_t wc を出力ストリームに格納します。wc は数ではなく文字として扱います。

virtual RWvostream&
operator<<(unsigned char c) = 0;

unsigned char c を出力ストリームに格納します。c は数ではなく文字として扱います。

virtual RWvostream&
operator<<(double d) = 0;

double d を出力ストリームに格納します。

virtual RWvostream&
operator<<(float f) = 0;

float f を出力ストリームに格納します。

virtual RWvostream&
operator<<(int i) = 0;

int i を出力ストリームに格納します。

virtual RWvostream&
operator<<(unsigned int i) = 0;

unsigned int i を出力ストリームに格納します。

virtual RWvostream&
operator<<(long l) = 0;

long l を出力ストリームに格納します。

virtual RWvostream&
operator<<(unsigned long l) = 0;

unsigned long l を出力ストリームに格納します。

virtual RWvostream&
operator<<(short s) = 0;

short s を出力ストリームに格納します。

virtual RWvostream&
operator<<(unsigned short s) = 0;

unsigned short s を出力ストリームに格納します。

operator void*();
RWvios から継承した関数。

公開メンバー関数

virtual RWvostream&
flush();

ストリームバッファの内容をすぐに出力へ送ります。

virtual RWvostream&
put(char c) = 0;

char c を出力ストリームに格納し、その値を保存します。

virtual RWvostream&
put(wchar_t wc) = 0;

wchar_t wc を出力ストリームに格納し、その値を保存します。

virtual RWvostream&
put(unsigned char c) = 0;

unsigned char c を出力ストリームに格納し、その値を保存します。

virtual RWvostream&
put(const char* p, size_t N) = 0;

p から始まる N 個の char のベクトルを出力ストリームに格納します。p は、文字列ではなく数の列として扱います。

virtual RWvostream&
put(const wchar_t* p, size_t N) = 0;

p から始まる N 個の wchar_t のベクトルを出力ストリームに格納します。p は、文字列ではなく数の列として扱います。

virtual RWvostream&
put(const unsigned char* p, size_t N) = 0;

p から始まる N 個の unsigned char のベクトルを出力ストリームに格納します。p は、文字列ではなく数の列として扱います。

virtual RWvostream&
put(const short* p, size_t N) = 0;

p から始まる N 個の short のベクトルを出力ストリームに格納します。

virtual RWvostream&
put(const unsigned short* p, size_t N) = 0;

p から始まる N 個の unsigned short のベクトルを出力ストリームに格納します。

virtual RWvostream&
put(const int* p, size_t N) = 0;

p から始まる N 個の int のベクトルを出力ストリームに格納します。

virtual RWvostream&
put(const unsigned int* p, size_t N) = 0;

p から始まる N 個の unsigned int のベクトルを出力ストリームに格納します。

virtual RWvostream&
put(const long* p, size_t N) = 0;

p から始まる N 個の long のベクトルを出力ストリームに格納します。

virtual RWvostream&
put(const unsigned long* p, size_t N) = 0;

p から始まる N 個の unsigned long のベクトルを出力ストリームに格納します。

virtual RWvostream&
put(const float* p, size_t N) = 0;

p から始まる N 個の float のベクトルを出力ストリームに格納します。

virtual RWvostream&
put(const double* p, size_t N) = 0;

p から始まる N 個の double のベクトルを出力ストリームに格納します。

virtual RWvostream&
putString(const char*s, size_t N);

s から始まる、埋め込まれたヌルを含む文字列を出力文字列に格納します。