ヘッダーをスキップ
Oracle® Database XML C++ APIリファレンス
11gリリース2 (11.2)
E94919-01
  目次へ
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

1 C++用のCtx APIパッケージ

CtxはTCtx XMLコンテキスト関連の型とインタフェースの名前空間です。

この章には、次の項が含まれます。


関連項目:

  • 『Oracle XML Developer's Kitプログラマーズ・ガイド』

  • 『Oracle XML DB開発者ガイド』



Ctxのデータ型

表1-1Ctxパッケージのデータ型の概要を示します。

表1-1 データ型の概要: Ctxパッケージ

データ型 説明

encoding


サポートされる唯一のエンコーディング

encodings


エンコーディングの配列



encoding

サポートされる唯一のエンコーディング

定義

typedef struct encoding {
   oratext *encname;
   oratext *encvalue;
} encoding;

encodings

エンコーディングの配列

定義

typedef struct encodings {
   unsigned num;
   encoding *enc; 
} encodings;

MemAllocatorインタフェース

表1-2MemAllocatorインタフェースで使用できるメソッドの概要を示します。

表1-2 MemAllocatorメソッドの概要: Ctxパッケージ

関数 概要

alloc()


特定のサイズのメモリーを割り当てます。

dealloc()


引数がポイントしているメモリーの割当てを解除します。

~MemAllocator()


仮想デストラクタ。実際のデストラクタに対するインタフェース・レベルのハンドル。



alloc()

これはユーザー定義のアロケータ関数のプロトタイプを定義する、仮想メンバー関数です。

構文

virtual void* alloc(
   ub4 size) = 0;
パラメータ 説明
size
メモリー・サイズ


dealloc()

これはユーザー定義のデアロケータ関数のプロトタイプを定義する、仮想メンバー関数です。このようなデアロケータは、allocメンバー関数で割り当てられたメモリーの割当てを解除するためにサポートされています。

構文

virtual void dealloc(
   void* ptr) = 0;
パラメータ 説明
ptr
それまでに割り当てられたメモリーへのポインタ


~MemAllocator()

名前や実装を把握せずに呼び出すことが可能な、実際のデストラクタに対するインタフェース・レベルのハンドルを提供します。

構文

virtual ~MemAllocator() {}

TCtxインタフェース

表1-3TCtxインタフェースで使用できるメソッドの概要を示します。

表1-3 TCtxメソッドの概要: Ctxパッケージ

関数 概要

TCtx()


クラス・コンストラクタです。

getEncoding()


XMLコンテキストで使用されるデータ・エンコーディングを取得します。

getErrHandler()


ユーザーが提供するエラー・ハンドラを取得します。

getMemAllocator()


メモリー・アロケータを取得します。

isSimple()


データ・エンコーディングがシンプルかどうかを示すフラグを取得します。

isUnicode()


データ・エンコーディングがUnicodeかどうかを示すフラグを取得します。

~TCtx()


デストラクタ。領域をクリアし、実装を破棄します。



TCtx()

TCtxコンストラクタ。コンテキスト・オブジェクトの作成に失敗した場合、XmlExceptionをスローします。

構文 説明
TCtx() throw (XMLException)
このコンストラクタはコンテキスト・オブジェクトを作成し、デフォルト値のパラメータを使用してコンテキスト・オブジェクトを初期化します。
TCtx(
   oratext* name,
   ErrorHandler* errh = NULL,
   MemAllocator* memalloc = NULL,
   encodings* encs = NULL)
throw (XMLException)
このコンストラクタはコンテキスト・オブジェクトを作成し、ユーザーが指定したパラメータ値を使用してコンテキスト・オブジェクトを初期化します。
TCtx(
   oratext* name,
   up4 inpblksize,
   ErrorIfs* errh = NULL,
   MemAllocator* memalloc = NULL,
   encodings* encs = NULL)
throw (XMLException)
このコンストラクタはコンテキスト・オブジェクトを作成し、ユーザーが指定したパラメータ値を使用してコンテキスト・オブジェクトを初期化します。入力ソースからのメモリー・ブロック・サイズに関する追加パラメータをとります。

パラメータ 説明
name
ユーザー定義のコンテキスト名
errh
ユーザー定義のエラー・ハンドラ
memalloc
ユーザー定義のメモリー・アロケータ
encs
ユーザー指定のエンコーディング
inpblksize
入力ソースのメモリー・ブロック・サイズ

戻り値

(TCtx) コンテキスト・オブジェクト


getEncoding()

XMLコンテキストで使用されているデータ・エンコーディングを戻します。通常、データ・エンコーディングはユーザーが選択するため、この関数は必要ありません。ただし、データ・エンコーディングが指定されておらず、デフォルトが使用されている場合、この関数を使用して、デフォルトのエンコーディング名を戻すことができます。

構文

oratext* getEncoding() const;

戻り値

(oratext *) データ・エンコーディングの名前。


getErrHandler()

このメンバー関数は、コンテキストが作成されたときにユーザーが指定したエラー・ハンドラを戻し、ユーザーが何も指定していない場合はNULLを戻します。

構文

ErrorHandler* getErrHandler() const;

戻り値

(ErrorHandler *) エラー・ハンドラ・オブジェクトへのポインタ、またはNULL


getMemAllocator()

このメンバー関数は、コンテキストが作成されたときにユーザーが指定したメモリー・アロケータ、またはデフォルトのメモリー・アロケータを戻します。Cレベルのすべてのメモリー割当てについて、このメモリー・アロケータが使用される必要があります。

構文

MemAllocator* getMemAllocator() const;

戻り値

(MemAllocator*) メモリー・アロケータ・オブジェクトへのポインタ。


isSimple()

コンテキストのデータ・エンコーディングが「シンプル」かどうか、すなわちASCIIやEBCDICのように各文字がシングルバイトであるかどうかを示すフラグを戻します。

構文

boolean isSimple() const;

戻り値

(boolean) データ・エンコーディングが「シンプル」の場合はTRUE、それ以外はFALSE


isUnicode()

コンテキストのデータ・エンコーディングが、1文字に2バイトを使用するUnicode、UTF-16かどうかを示すフラグを戻します。

構文

boolean isUnicode() const;

戻り値

(boolean) データ・エンコーディングがUnicodeの場合はTRUE、それ以外はFALSE


~TCtx()

デストラクタ。コンテキスト・オブジェクトが不要になった場合に、ユーザーがコールします。

構文

~Tctx();