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