|
|
| Sun ONE Calendar Server プログラマーズガイド |
第 2 章 CSAPI リファレンス
この節では、それぞれが API である 9 つの CSAPI インタフェースについて詳しく説明します。API はクライアント側とサーバ側に分けられます。
表 2-1 および表 2-2 に記載されている API を使用して、Sun ONE Calendar Server のデフォルトの動作を拡張またはオーバーライドします。
Sun ONE 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 定数 (ビットマップ) を示します。
表 2-3    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。
説明
このメソッドを使用して、Sun ONE 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) を拡張またはオーバーライドするには、このインタフェースのメソッドを実装します。 Sun ONE Calendar Server で提供されるカレンダー検索は、アルゴリズム型または LDAP の 2 種類です。 LDAP がデフォルトです。 このプラグインのメソッドには、LDAP の検索だけで使用されるものもあります。
次の表は、このプラグインのメソッドと、メソッドがアルゴリズム型 (Alg) または LDAP のどちらの検索をサポートするか、およびメソッドの説明を一覧表示しています。
メソッド
csICalendarLookup は、次のメソッドを実装します。
メソッド
タイプ
説明
説明
1 つ以上のメソッドを実装することにより、カレンダー検索を制御できます。
piReturnCode の値
piReturnCode パラメータのリターンコードは、次の 4 つがあります。
目的
指定した calid に関連する LDAP のホスト名を削除します。
構文
PRInt32 GetHostnameForCalid(char* psCalid, PRInt32 *piReturnCode) = 0;
戻り値
成功の場合はゼロ。失敗の場合はゼロ以外のコードを返します。 「piReturnCode の値」 を参照してください。
説明
カレンダー検索データベースで指定されたカレンダーに関連するホスト名を削除します。 これは、アルゴリズム型実装の無演算命令です。
目的
以前に割り当てた、完全修飾カレンダー ID (calid) を解放します。
構文
PRUint32 FreeCalid(char** aQualifiedCalid,PRInt32 *aReturnCode) = 0;
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。
目的
以前に割り当てたデータベースのプラグインのタイプを解放します。
構文
PRUint32 FreeType(char* aType,PRInt32 *aReturnCode) = 0;
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。
説明
QueryType メソッドで割り当てた文字列を解放します。 両方の実装で使用されます。
目的
指定した calid に関連するホスト名を検出します。
構文
PRInt32 GetHostnameForCalid(char* psCalid, char** ppsHost, PRInt32 *piReturnCode) = 0;
戻り値
成功の場合はゼロ。失敗の場合はゼロ以外のコードを返します。 「piReturnCode の値」を参照してください。
説明
カレンダー検索データベースのカレンダーに関連するホスト名を取得します。 これはアルゴリズム型実装の無演算命令です。
目的
インタフェースが登録されていることを確認し、サーバへの参照を提供します。
構文
PRUint32 Init(nsISupports *aServer) = 0;
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。
説明
サーバは、モジュールのロード時にインタフェースを検出して登録した後、このメソッドを呼び出して、操作が成功したことを確認します。 aServer で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
構文
PRUint32 QualifyCalid(char* psCalid, char** ppsQualifiedCalid, PRInt32 *piReturnCode) = 0;
戻り値
成功した場合はゼロ。失敗した場合は、ゼロ以外のエラーコード。
説明
修飾 calid の名前を返します。 修飾 calid の形式は次のとおりです。 dwp://back-end host[:port]/psCalid
構文
PRUint32 QueryType(char* aType,PRInt32 *aReturnCode) = 0;
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。
説明
この関数は、プラグインが実装する CLD のタイプを表す文字列を検索します。
サポートされている唯一のタイプは「アルゴリズム型」で、これは正規表現をサポートします。
目的
現在は使用されません。 カレンダーユーザのホスト名を設定します。
構文
PRInt32 SetHostnameForCalid(char* psCalid, char* ppsHost, PRInt32 *piReturnCode) = 0;
説明
作成する calid のホスト名を設定します。 これはアルゴリズム型実装の無演算命令です。
これは、データ変換機能のプラグインのインタフェースです。すべてのパラメータはプラグインによって割り当てる必要があります。
メソッド
csIDataTranslator インタフェースは、次の 3 つのメソッドを実装します。
説明
このインタフェースを使用して、データベース間や様々なデータ変換機能との間でやり取りされるカレンダーデータの HTML 本文の内容を、操作したり変更したりできます。 データ変換機能は、WCAP 応答の出力形式 (fmt-out) コンポーネントを操作します。
Sun ONE 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 つのメソッドを実装します。
プラグインのメジャーおよびマイナーバージョンを取得する。この値は 1.0 以上でなければならない。 各プラグイン API の現在のバージョン番号のリストについては、「CSAPI の概要」の章にある「プラグイン API の現在のバージョン」を参照
説明
このインタフェースは必須ではありませんが、各モジュールに実装して、サーバがモジュールをロードするときに、バージョン情報を取得できるようにすることを、強くお勧めします。これらのメソッドは、詳細情報をサーバに返します。
構文
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 で返されたポインタを使用して、サーバへの呼び出しを行うことができます。
構文
PRUint32 SetAttribute (char* aUser, char* aKey, char* aValue, PRInt32 *aReturnCode) = 0;
パラメータ
このメソッドには、次のパラメータがあります。
戻り値
成功した場合は、NS_OK。失敗した場合は、ゼロ以外のエラーコード。
説明
指定したユーザの指定した属性を、指定した値に設定します。
csICalendarServer インタフェースは、次の 2 つのメソッドを実装します。
説明
プラグインモジュールは、csICalendarServer インタフェースにクエリして、Sun ONE 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++ の対応するものと同じ方法でこのメソッドを使用して、以前に割り当てたメモリーを割り当て直します。
前へ 目次 索引 次へ
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.
最終更新日 2002 年 8 月 29 日