Tools.h++ 7.0 クラスライブラリ・リファレンスマニュアル: RWvostream

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

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

## RWvostream

RWvostream RWvios

### 形式

      #include <rw/vstream.h>

### 説明

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

  RWvistream と RWvostream のインタフェースは書式に依存していないため、ユーザーが実際の変数の記憶および復元方法を指定する必要はありません。それは派生クラスが決めることです。これは、オペレーティングシステムに依存しない ASCII 形式 (クラス RWpistream と RWpostream)、バイナリ形式 (クラス RWbistream と RWbostream)、またはユーザー独自の形式 (ネットワークとのインタフェースなど) を使用して行われます。このクラスは抽象基底クラスであるため、実際に処理方法を強制する手段はありません。ここでは、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` から始まる、埋め込まれたヌルを含む文字列を出力文字列に格納します。