前へ 目次 索引 DocHome 次へ |
iPlanet Calendar Server 5.1 プログラマーズマニュアル |
第 2 章 CSAPI リファレンス
ここでは、それぞれが API である 9 つの CSAPI インタフェースについて詳しく説明します。API はクライアント側とサーバ側に分けられます。表 2-1 および表 2-2 に記載されている API を使用して、iPlanet Calendar Server のデフォルトの動作を拡張またはオーバーライドします。
iPlanet Calendar Server のデフォルトのアクセス制御動作を拡張またはオーバーライドするには、このインタフェースにメソッドを実装します。
メソッド
csIAccessControl インタフェースは、次の 2 つのメソッドを実装します。
説明
許可するアクセスのタイプを定義します。リターンコードを設定して、デフォルトのアクセス制御を使用するか、デフォルトをオーバーライドするかを指定する必要があります。
構文
PRUint32 CheckAccess (char * aUser,
char * aCalid,
PRInt32 * aAccessRequest,
PRInt32 * aAccessAllowed,
PRInt32 * aReturnCode) = 0;
パラメータ
このメソッドには、次の 5 つのパラメータがあります。
出力パラメータ。許可されたアクセスを表すビットフラグのセット。このメソッドは、aAccessRequest で指定されたビットのみをチェックする
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。
説明
このメソッドを使用して、ユーザのアクセスタイプを要求します。ユーザの名前を aUser パラメータに、要求するアクセスタイプを aAccessRequest パラメータ (ビットマスク) に指定して送ります。システムは、aAccessRequest ビットマスクに指定されたアクセスタイプのみをチェックします。返されるビットマスク aAccessAllowed は、要求したタイプに対してユーザが利用できるアクセスを表します。匿名アクセスの場合は、ユーザ ID を「anonymous」にします。
次に、利用できるアクセスタイプを定義する ICS_ACCESSTYPE 定数 (ビットマップ) を示します。
このメソッドを使用して、独自のアクセス制御手順を指定します。ネイティブアクセス制御メカニズムを拡張して、独自の処理を先に (場所の変更はなし) 実行してからデフォルトの処理を実行するか、またはネイティブアクセス制御メカニズムを完全に置き換えることができます。
目的
インタフェースが登録されていることを確認し、サーバへの参照を提供します。
構文
PRUint32 Init (nsISupports * a Server) = 0;
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。
説明
サーバは、モジュールのロード時にインタフェースを検出して登録した後、このメソッドを呼び出して、操作が成功したことを確認します。aServer で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
Calendar Server のデフォルトの認証動作を拡張またはオーバーライドするすべてのプラグインには、このインタフェースを実装する必要があります。
メソッド
csIAuthentication インタフェースは、次の 5 つのメソッドを実装します。
説明
選択した認証方法を実装するログオン、ログオフ、確認およびパスワードのメソッドを定義できます。1 つのメソッドを置き換えた後も、その他のメソッドではデフォルト (の実装) を継続して使用できます。各メソッドは、リターンコードのパラメータ (aReturnCode) を使用して、メソッドの実行後もデフォルトのアクセス制御処理を継続するかどうかをサーバに指示します。リターンコードの値は、次の定数のいずれかとします。
構文
PRUint32 Init (char * aUser,
char * aOldPassword,
char * aNewPassword,
PRInt32 * aReturnCode) = 0;
パラメータ
このメソッドには、次の 4 つのパラメータがあります。
戻り値
成功した場合は NS_AUTHENTICATION_CHANGEPASSWORD_SUCCESS、失敗した場合は NS_AUTHENTICATION_CHANGEPASSWORD_FAILURE。
目的
インタフェースが登録されていることを確認し、サーバへの参照を提供します。
構文
PRUint32 Init (nsISupports * aServer) = 0;
戻り値
成功した場合は NS_OK、失敗した場合はゼロ以外のコード。
説明
サーバは、モジュールのロード時にインタフェースを検出して登録した後、このメソッドを呼び出して、操作が成功したことを確認します。aServer で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
目的
プレーンテキストによるログインのための認証手順を拡張またはオーバーライドします。
構文
PRUint32 Login (char * aUser,
char * aPassword,
PRInt32 * aReturnCode) = 0;
パラメータ
このメソッドには、次の 3 つのパラメータがあります。
戻り値
成功した場合は NS_AUTHENTICATION_LOGON_SUCCESS、失敗した場合は NS_AUTHENTICATION_LOGON_FAILURE。
説明
このメソッドを使用して、iPlanet Calendar Server へのログイン時の独自の認証手順を指定します。ネイティブの認証メカニズムを拡張して、独自の処理を先に実行してからデフォルトの処理を実行するか、ネイティブの認証メカニズムを完全に置き換えることができます。
構文
PRUint32 Init (char * aUser,PRInt32 * aReturnCode) = 0;このメソッドには、次の 2 つのパラメータがあります。
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。
目的
ユーザ ID が LDAP ディレクトリにあることを確認します。
構文
PRUint32 Init (char * aUser,PRInt32 * aReturnCode) = 0;このメソッドには、次の 2 つのパラメータがあります。
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。デフォルトのカレンダー検索 (LDAP) を拡張またはオーバーライドするには、このインタフェースにメソッドを実装します。
メソッド
csICalendarLookup は、次の 5つのメソッドを実装します。
説明
1 つ以上のメソッドを実装することにより、カレンダー検索を制御できます。
目的
インタフェースが登録されていることを確認し、サーバへの参照を提供します。
構文
PRUint32 Init (nsISupports * aServer) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
サーバは、モジュールのロード時にインタフェースを検出して登録した後、このメソッドを呼び出して、操作が成功したことを確認します。aServer で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
構文
PRUint32 QualifyCalid (char * aRelativeCalid,
char ** aQualifiedCalid,
PRInt32 * aReturnCode) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
目的
以前に割り当てた、完全修飾カレンダー ID (CALID) を解放します。
構文
PRUint32 FreeCalid (char ** aQualifiedCalid,PRInt32 * aReturnCode) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
構文
PRUint32 QueryType (char * aType,PRInt32 * aReturnCode) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
この関数は、プラグインが実装する CLD のタイプを表す文字列を検索します。サポートされている唯一のタイプは「algorithmic」で、これは正規表現をサポートします。
目的
以前に割り当てたデータベースのプラグインのタイプを解放します。
構文
PRUint32 FreeType (char * aType,PRInt32 * aReturnCode) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
QueryType メソッドで割り当てた文字列を解放します。
これは、データ変換機能のプラグインのインタフェースです。すべてのパラメータはプラグインによって割り当てる必要があります。
メソッド
csIDataTranslator インタフェースは、次の 3 つのメソッドを実装します。
説明
このインタフェースを使用して、データベースとの間または様々なデータ変換機能との間でやり取りされるカレンダーデータの HTML 本文の内容を、操作したり変更したりできます。データ変換機能は、WCAP 応答の出力形式 (fmt-out) のコンポーネントを操作します。iPlanet Calendar Server では、カレンダーデータの変換用として次の MIME タイプをサポートします。
CSAPI データ変換モジュールは、GetSupportedContentType メソッドを使用して特定の MIME タイプでサーバに登録します。データ変換機能は、サポートされている任意の MIME タイプで入力データを要求できます。
モジュールが入力として受け入れる MIME タイプの入力データの場合は、サーバはそのデータをモジュールの Translate メソッドに渡します。データは、データベース変換機能によってサポートされている MIME タイプに変換され、サーバに戻されます。
目的
このデータベース変換機能がサポートするコンテンツタイプを取得します。
構文
PRUint32 GetSupportedContentTypes (char ** aSupportedInContentTypes,
char ** aSupportedOutContentType,
char ** aPreferredInContentType,
PRInt32 * aReturnCode) = 0;
パラメータ
このメソッドには、次のパラメータがあります。
プラグインが優先的に受け取る内容のタイプ。最初のパラメータで渡された、サポートされているコンテンツタイプのいずれかであることが必要
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のコード。
説明
このデータベース変換機能がサポートする内容のタイプを取得します。
目的
インタフェースが登録されていることを確認し、サーバへの参照を取得します。
構文
PRUint32 Init (nsISupports * aServer) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
サーバは、モジュールのロード時にインタフェースを検出して登録した後、このメソッドを呼び出して、操作が成功したことを確認します。aServer で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
構文
PRUint32 Translate (char * aInContentType,
char * aOutContentType,
char ** aInBuffer,
char ** aOutBuffer,
PRInt32 * aInSize,
PRInt32 * aOutsize,
PRInt32 * aReturncode) = 0;
パラメータ
このメソッドには、次のパラメータがあります。
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
このメソッドは、指定したバッファから指定した入力形式のコンテンツを取り出して、コンテンツを元の形式から出力形式に変換します。指定した出力バッファに変換されたコンテンツを保存し、指定された場所に出力バッファのサイズを保存します。
起動時にプラグインモジュールの情報をサーバに提供するには、このインタフェースにメソッドを実装する必要があります。
メソッド
csIPlugin インタフェースは、次の 4 つのメソッドを実装します。
説明
このインタフェースは必須ではありませんが、各モジュールに実装して、サーバがモジュールをロードするときに、バージョン情報を取得できるようにすることを、強くお勧めします。これらのメソッドは、詳細情報をサーバに返します。
構文
PRUint32 GetDescription (nsString& aDescription) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
このメソッドを使用して、モジュールの説明テキストを提供します。
目的
モジュールを提供するベンダーの説明テキストを取得します。
構文
PRInt32 GetVendorName (nsString& aVendorName) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
このメソッドを使用して、モジュールの供給元を特定します。
構文
PRUint32 GetVersion (PRUint32& aMajorValue,
PRUint32& aMinorValue) = 0;
パラメータ
このメソッドには、次の 2 つのパラメータがあります。
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
このメソッドを使用して、モジュールのメジャーおよびマイナーのバージョン番号を特定します。バージョンは、1.0 以上である必要があります。
目的
インタフェースが登録されていることを確認し、サーバへの参照を取得します。
構文
PRUint32 Init (nsISupports * aServer) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
サーバは、モジュールのロード時にインタフェースを検出して登録した後、このメソッドを呼び出して、操作が成功したことを確認します。aServer で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
渡された修飾 URL のカレンダー ID を検索するデフォルトのメソッドを拡張またはオーバーライドするには、このインタフェースにメソッドを実装します。
メソッド
csICalendarLookup は、次の 2 つのメソッドを実装します。
説明
渡された修飾 URL のカレンダー ID を検索します。CALID が見つからない場合は、このコマンドはエラーを返します。
目的
指定された URL のカレンダー ID を検索します。
構文
PRUint32 FindCalid (char * pQualifiedURL,
char ** ppCalidOut,
PRInt32 * piCalidSize,
PRInt32 * aReturnCode) = 0;
パラメータ
このメソッドには、次のパラメータがあります。
渡された修飾 URL のポインタを使用して、カレンダー ID データベースの検索を実行します。一致するものが見つかった場合は、CALID のアドレスポインタと CALID のサイズを示す整数を返します。
目的
インタフェースが登録されていることを確認し、サーバへの参照を提供します。
構文
PRUint32 Init (nsISupports * aServer) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。サーバは、モジュールのロード時にインタフェースを検出して登録した後、このメソッドを呼び出して、操作が成功したことを確認します。aServer で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
ユーザ属性の設定または検索の手順をオーバーライドするには、このインタフェースにメソッドを実装します。
メソッド
csIUserAttributes インタフェースは、次の 4 つのメソッドを実装します。
説明
ユーザ属性のインタフェースにより、CSAPI モジュールは、受信するすべてのリクエストを保守または操作して、ユーザ属性値の設定や検索を行うことができます。選択した手法を使用して、属性の検索や設定を行うメソッドを提供します。
目的
ローカルの属性記憶域と関連付けられたメモリを解放します。
構文
PRint32 FreeAttribute (char * aValue, PRInt32 * aReturnCode) = 0;
パラメータ
このメソッドには、次の 2 つのパラメータがあります。
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
GetAttribute メソッドを使用して属性の値を検索すると、値は、選択したメモリ管理手法を使用して、割り当てた場所に格納されます。メモリが不要になった場合は、FreeAttribute メソッドを使用して、同じメモリ管理手法でそのメモリを解放します。(csIMalloc 参照)
構文
PRUint32 GetAttribute (char * aUser,
char * aKey,
char ** aValue,
PRInt32 * aReturnCode) = 0;
パラメータ
このメソッドには、次の 4 つのパラメータがあります。
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
特定ユーザの指定された属性の値を検索し、その値を aValue がポイントする場所に格納します。返される属性の格納場所を割り当てる必要があります。格納場所が不要になった場合は、 FreeAttribute メソッドを使用して、その格納場所を 解放する必要があります。
目的
インタフェースが登録されていることを確認し、サーバへの参照を取得します。
構文
PRUint32 Init (nsISupports * aServer) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
サーバは、モジュールのロード時にインタフェースを検出して登録した後、このメソッドを呼び出して、操作が成功したことを確認します。aServer で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
構文
RUint32 SetAttribute (char * aUser,
char * aKey,
char * aValue,
PRInt32 * aReturnCode) = 0;
パラメータ
このメソッドには、次のパラメータがあります。
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
指定したユーザの指定した属性を、指定した値に設定します。
csICalendarServer インタフェースは、次の 2 つのメソッドを実装します。
説明
プラグインモジュールは、csICalendarServer インタフェースに照会して、 iPlanet Calendar Server の実行インスタンスのバージョン情報を取得できます。このオブジェクトはクライアントが存在する間有効なので、Init は参照を返しません。
目的
プラグインモジュールにサーバのバージョン情報を提供します。
構文
PRUint32 GetVersion (PRUint32& aMajorValue,
PRUint32& aMinorValue) = 0;
パラメータ
このメソッドには、次の 2 つのパラメータがあります。
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
このメソッドを使用して、サーバのメジャーおよびマイナーのバージョン番号を特定します。バージョンは、1.0 以上である必要があります。
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
サーバは、このメソッドを呼び出して、インタフェースが検出されて正常に登録されたことを確認します。
メソッド
csIMalloc インタフェースは、次の 6 つのメソッドを実装します。
説明
プラグインモジュールは、このオブジェクトを使用して、サーバの効率的なメモリ割り当て手法を利用できます。このオブジェクトはクライアントが存在する間有効なので、Init は参照を返しません。
目的
オブジェクト用のメモリを割り当て、ゼロで初期化します。
構文
void* Calloc (PRUint32 aSize, PPRUint32 aNum) = 0;
パラメータ
このメソッドには、次の 2 つのパラメータがあります。
戻り値
成功した場合は、割り当てられたメモリのポインタ、失敗した場合は NULL。
説明
このメソッドは、指定したサイズの指定した数のオブジェクトに十分なメモリを割り当て、メモリをゼロで初期化します。
目的
以前に Malloc メソッドで割り当てたメモリを解放します。
構文
PRUint32 Free (void * aPtr) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
C/C++ の対応するものと同じ方法でこのメソッドを使用して、以前に割り当てたメモリを解放します。
目的
以前に Malloc メソッドで割り当てたメモリを解放し、NULL ポインタが使用できます。
構文
PRUint32 FreeIf (void * aPtr) = 0;
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
aPtr が NULL でない場合は、指定した場所のメモリを解放します。
戻り値
成功した場合は NS_OK。失敗した場合はゼロ以外のエラーコード。
説明
サーバは、このメソッドを呼び出して、インタフェースが検出されて正常に登録されたことを確認します。
構文
void* Malloc (PRUint32 nBytes) = 0;
戻り値
成功した場合は、割り当てられたメモリのポインタ、失敗した場合は NULL。
説明
C/C++ の対応するものと同じ方法でこのメソッドを使用します。
構文
void* Realloc (void * aPtr,PRUint32 nBytes) = 0;
戻り値
成功した場合は、割り当てられたメモリのポインタ、失敗した場合は NULL。
説明
C/C++ の対応するものと同じ方法でこのメソッドを使用して、以前に割り当てたメモリを割り当て直します。
前へ 目次 索引 DocHome 次へ
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.
最終更新日: 2002 年 1 月 30 日