カレンダのアプリケーション・プログラム・インタフェース (API) は、ネットワーク環境でカレンダ・データにアクセスし、管理するためのプログラム的な方法を提供します。API は、項目の挿入、削除、変更だけでなく、ブラウズおよび検索機能もサポートします。また、カレンダ管理関数をサポートします。
カレンダ API は、X.400 Application Programming Interface Association (XAPIA) の Calendaring and Scheduling API (CSA API) を実装しています。CSA API は、カレンダが有効なアプリケーションからカレンダおよびスケジュール・サービスのさまざまな機能へのアクセスを可能にする高水準の関数のセットを定義しています。最新の XAPIA 仕様の詳細は、X.400 API Association (800 El Camino Real, Mountain View, California 94043) に問い合わせてください。
この章では、次の節でカレンダ API を説明します。
カレンダ API を使用するには、libcsa ライブラリをリンクする必要があります。ヘッダ・ファイルは、csa/csa.h です。
カレンダ API の使用例を示すデモ・プログラムが、/usr/dt/examples/dtcalendar にあります。
カレンダ API は、ネットワーク環境でカレンダ・データにアクセスし、管理する方法を提供します。
CSA インタフェースは、カレンダおよびスケジュール・サービスへの共通インタフェースを可能にします。CSA 実装のそれぞれについて、CSA によって与えられる表示と機能は、基本のカレンダ・サービスの表示と機能にマップされなければなりません。インタフェースは、実際のカレンダおよびスケジュールの実装に依存しないように設計されています。また、インタフェースは、カレンダ・サービスが使用するオペレーティング・システムと基本のハードウェアに依存しないように設計されています。
提供される関数呼び出しの数は、最小限のものです。一組の関数で複数の種類のカレンダ項目を管理します。
表 10-1 に示すように、C インタフェースの要素の識別子は、要素の属性名とそれに関連するデータ型に由来します。属性名には、テーブルの 2 番目の欄の文字列が接頭辞として付けられます。英字は、3 番目の欄の大文字または小文字に変換されます。
表 10-1 C 命名規則の由来
要素の種類 |
接頭辞 |
大文字/小文字 |
---|---|---|
データ型 |
CSA_ |
小文字 |
データの値 |
CSA_ |
大文字 |
関数 |
csa_ |
小文字 |
関数の引き数 |
なし |
小文字 |
関数の結果 |
なし |
小文字 |
定数 |
CSA_ |
大文字 |
エラー |
CSA_E_ |
大文字 |
マクロ |
CSA_ |
大文字 |
拡張セットのために確保 |
CSA_XS_ |
大文字/小文字 |
拡張のために確保 |
CSA_X_ |
大文字/小文字 |
処理系作成者が使用するために確保 |
CSAP |
大文字/小文字 |
ベンダ関数拡張のために確保 |
csa_x |
小文字 |
構造体のタグ |
CSA_TAG_ |
大文字 |
接頭辞 CSAP (大文字/小文字) が付いている要素は、CSA サービスの実装の作成者が内部専用として使用するために確保されています。CSA インタフェースによって書かれたプログラムが直接使用するためのものではありません。
接頭辞 CSA_XS_、CSA_X_ (大文字/小文字)、および csa_x は、ベンダまたはグループによるインタフェースの拡張のために確保されています。仕様では、これらのインタフェース拡張は、基本関数セットの拡張として定義されています。
定数データ値の場合、定数データ値のデータ構造体または関数を示すために、通常、追加の文字列が CSA_ に追加されます。
本節では、CSA API をサポートしているサービスの機能のアーキテクチャを説明します。抽象実装モデル、抽象データ・モデル、および機能の概要を示します。
CSA API の適用範囲が理解できるように、抽象実装モデルが用意されています。
CSA インタフェースは、カレンダが使用可能なアプリケーションとカレンダ・サービスの間に定義されます。このインタフェースの機能はすべて、カレンダ・サービスに依存しないように設計されています。ただし、この API では、拡張の使用によって実行される共通関数のプロトコル固有の拡張は許されています。詳細は、「拡張」を参照してください。カレンダが使用可能なアプリケーションとカレンダ・サービスの CSA インタフェースの関係を図 10-1 に示します。
CSA インタフェースのモデルは、管理、カレンダ管理、および項目管理という 3 つのコンポーネントに分けることができます。これらのコンポーネントを図 10-2 に示します。
カレンダ・サービスへのアクセスは、カレンダ・セッションを通して確立されます。セッションは、カレンダ・サービスへの有効な接続のために用意され、サービスによって保持されるカレンダ情報の整合性の確保を支援します。カレンダが使用可能なアプリケーションは、カレンダ・サービス内の個々のカレンダにログインして、有効なセッションまたは接続を確立します。セッションは、カレンダが使用可能なアプリケーションがカレンダからログアウトすることによって終了します。
カレンダ・サービスは、1 つ以上のカレンダを保持します。カレンダ・サービスは、これらのカレンダに対して、いくつかのレベルの管理サポートを提供します。カレンダが使用可能なアプリケーションは、特定のカレンダ・サービスによって保持されるカレンダのリストにアクセスできます。さらに、カレンダ・サービスにより、実装固有の永続的形式にカレンダ情報を保管したり復元したりできます。カレンダ・サービスが複数のカレンダの保持をサポートする場合には、カレンダの作成と削除のためのサポート関数が定義されます。また、カレンダの特性を管理するための関数が定義されます。
CSA インタフェースのほとんどの関数は、個々のカレンダ項目を管理します。カレンダ項目は、イベント、予定、またはメモです。項目は、特定のカレンダへの追加、削除、更新、および読み取りができます。カレンダが使用可能なアプリケーションは、カレンダ項目に通知方法を追加できます。
CSA インタフェースは、カレンダ・サービスによって保持されるカレンダ情報の概念上のバックエンドの記憶領域へのアクセス方法です。共通データ・モデルは、カレンダ・サービスによって保持されるカレンダ情報のコンポーネントを視覚化する際に役に立ちます。
データ・モデルは、カレンダ・エンティティの概念に基づきます。カレンダは、管理カレンダ属性とカレンダ項目の名前付きコレクションによって表されます。カレンダは、個々のユーザによって所有されます。ユーザは、個人、グループ、またはリソースを表します。
カレンダ属性は、カレンダに関する共通、実装固有、またはアプリケーション固有の管理特性を表す名前付きの値のセットです。たとえば、タイムゾーン、名前、所有者、およびカレンダへのアクセスの権利を、個々のカレンダ属性の中で指定できます。
カレンダ項目は、カレンダの主要なコンポーネントです。カレンダ項目の 3 つのクラスは、次のとおりです。
イベント
予定
メモ
カレンダ項目は、固有な名前を付けられた項目属性のコレクションによって表されます。項目属性は、カレンダ項目の共通、実装固有、またはアプリケーション固有の特性を表す名前付きの値のセットです。たとえばイベントには、開始と終了の日付と時間、説明、およびサブタイプを指定できます。予定には、作成日、期限、優先順位、およびステータスを指定できます。メモには、作成日とテキスト内容または説明を入れることができます。
カレンダ属性と項目属性は、名前、型、値の 3 つの組から成ります。仕様によって定義されている共通属性を拡張できます。実装によって、固有の属性を定義できます。また、アプリケーションでアプリケーション固有の属性を定義するための機能を提供するものもあります。共通デスクトップ環境では、アプリケーション定義の属性をサポートします。
個々のユーザがカレンダにアクセスできるかどうかは、そのユーザに与えられるアクセス権によって制御されます。アクセス権は、カレンダのユーザと対になっています。CSA では、ユーザは、個人、グループ、またはリソースです。共通デスクトップ環境では、個々のユーザだけをサポートします。アクセス権は、アクセス・リストで保持されます。アクセス・リストは、特定のカレンダ属性です。アクセス権は、個別に制御され、それを累積することによって、カレンダとその項目に対するユーザのアクセスの範囲を定義できます。アクセス権は、次のアクセスの役割の観点から指定できます。
カレンダの所有者
カレンダ内の特定の項目の主催者
カレンダ内の特定の項目のスポンサー
所有者の役割を与えられたユーザは、カレンダの所有者ができることであれば、カレンダまたはカレンダ項目に対して何でも実行できます。すなわち、カレンダの削除、カレンダ属性の表示、挿入、変更、カレンダ項目の追加と削除、項目属性の表示、挿入、および変更を実行できます。
主催者の役割を与えられたユーザは、そのユーザが主催者として指定されたカレンダ項目に対して、項目の削除、または項目属性の表示や変更を実行できます。デフォルトでは、項目を作成したカレンダ・ユーザが主催者です。
スポンサーの役割を与えられたユーザは、そのユーザがスポンサーとして指定されたカレンダ項目に対して、項目の削除、または項目属性の表示や変更を実行できます。スポンサーは、カレンダ項目を実質的に所有するカレンダ・ユーザです。
これらの役割に加えて、アクセス権の設定によって、公用、半私用、私用の分類に応じて、空き時間の検索へのアクセス、カレンダ属性の表示、挿入、変更、あるいは項目の表示、挿入、変更を制限できます。項目の分類は、アクセスできるかどうかの二次フィルタとして機能します。
CSA インタフェースは、主に 3 種類の作業をサポートします。
管理
カレンダ管理
エントリ管理
CSA 関数呼び出しの大部分は、カレンダ・セッションの中で発生します。カレンダ・セッションは、カレンダが使用可能なアプリケーションとカレンダ・サービスによって保持された特定のカレンダとの間の論理的な接続です。セッションは、csa_logon() 関数の呼び出しで確立され、csa_logoff() 関数の呼び出しで終了します。セッションの状況は、セッション・ハンドルによって表されます。このハンドルは、1 つのカレンダ・セッションを他のセッションと見分けるためのトークンを各 CSA 関数の中で提供します。csa_logon() 関数は、また、カレンダ・サービスに対してユーザを認証し、セッション属性を設定します。現時点では、アプリケーション間でのカレンダ・セッションの共有はサポートされていません。
csa_list_calendars() 関数は、特定のカレンダ・サービスによって管理されるカレンダ名をリストするために使用されます。
csa_query_configuration()関数は、現在のカレンダ・サービスの構成に関する情報をリストするために使用されます。この情報は、文字セット、テキスト文字列の行終了文字、デフォルトのサービス名、指定されたカレンダ・サービスのデフォルトの認証ユーザ識別子、ユーザ識別子を認証するためにパスワードが必要かどうかを示すインジケータ、ユーザ・インタフェース・ダイアログの共通拡張がサポートされるかどうかを示すインジケータ、および実装によってサポートされる CSA 仕様などです。
CSA の実装は、サービスによって返されるカレンダ・オブジェクトおよび属性のためのメモリの管理をサポートします。csa_free() 関数は、このメモリが不要になったときに、解放するために使用されます。カレンダ・サービスによって割り当てられ、管理されるメモリを解放するのは、アプリケーションの責任です。
CSA インタフェースは、いくつかのカレンダ管理関数を提供します。共通デスクトップ環境では、1 つのカレンダ・サービスにつき複数のカレンダをサポートします。カレンダが使用可能なアプリケーションは、カレンダを追加したり削除したりできます。csa_delete_calendar() 関数は、カレンダを削除するために使用されます。csa_add_calendar() 関数は、サービスに新しいカレンダを追加するために使用されます。
アプリケーションは、また、csa_list_calendar_attributes()、csa_read_calendar_attributes()、および csa_update_calendar_attributes() 関数を使用して、カレンダ属性のリスト、読み取り、および更新を実行できます。アプリケーションは、カレンダ・ログイン、カレンダの削除、カレンダ属性の更新、新しいカレンダ項目の追加、カレンダ項目の削除、およびカレンダ項目の更新について通知を受けるためのコールバック関数を登録できます。コールバック関数は、カレンダ・セッションの継続中だけ登録されます。この情報は、一部のカレンダ管理アプリケーションにとっては貴重なものです。
CSA インタフェースは、カレンダ項目を管理するための強力な関数のセットを備えています。カレンダ・セッション中のカレンダ項目の状況は、項目ハンドルによって保持されます。このハンドルは、1 つのカレンダ項目を他の項目と見分けるためのトークンを CSA 関数の中で提供します。項目ハンドルは、csa_add_entry() とcsa_list_entries() 関数によって返されます。項目ハンドルは、カレンダ・セッションの継続期間、あるいは項目が削除または更新されるまで有効です。csa_free() の呼び出しによって解放されると、項目ハンドルは無効になります。
csa_add_entry() 関数は、カレンダに新しい項目を追加するために使用されます。csa_delete_entry() 関数は、カレンダの中の項目を削除するために使用されます。csa_list_entries() 関数は、項目属性基準の特定のセットと一致するカレンダ項目を列挙するために使用されます。csa_read_entry_attributes() 関数は、特定のカレンダ項目に関連するすべてまたは一組の項目属性値を取り出すために使用されます。
カレンダに項目を追加するには、カレンダが使用可能なアプリケーションは、まず csa_logon() 関数を使用して、カレンダ・サービスとのセッションを確立しなければなりません。次に、アプリケーションは、csa_add_entry() 関数を新しい項目を指定するために実行します。カレンダが使用可能なアプリケーションは、csa_add_entry() 関数の中で使われる属性を組み立てる責任があります。セッションの終了には、csa_logoff() 関数が使用されます。
個々のカレンダ項目の中の項目属性は、csa_list_entry_attributes() 関数で列挙できます。csa_read_entry_attributes() 関数を使用すると、1 つ以上の属性の値を読み取ることができます。個々の項目属性は、csa_update_entry_attributes() 関数で変更できます。
カレンダ情報を検索するために CSA の実装によって割り当てられたメモリは、関連するメモリ・ポインタを csa_free() 関数に渡すことによって解放されます。
再帰的活動に関連するカレンダ項目もあります。csa_list_entry_sequence() 関数を使用すると、他の再帰的カレンダ項目を列挙できます。この関数は、再帰的項目の項目ハンドルのリストを返します。
CDE カレンダ・サーバは、カレンダ項目に関連付けられるアラームまたは通知方法のサポートを提供します。通知方法は、端末のスピーカからの音声による通知、端末画面の点滅による通知、カレンダ・ユーザへのメール送信による通知、端末画面にポップアップを表示することによる通知などの形を取ることができます。カレンダ・サービスは通知方法を管理しますが、通知情報を検索し、情報に対処するのはカレンダ・アプリケーションの責任です。csa_read_next_reminder() 関数は、次のスケジュール済みの通知に関する情報を読み込むために使用されます。
CSA 仕様で定義されている大半のデータ構造と関数は拡張できます。拡張は、データ構造にフィールドを追加したり、関数呼び出しにパラメータを追加したりするために行われます。これらの拡張のための標準的な汎用データ構造が定義されています。それは、拡張を識別する項目コード、拡張データまたはデータ自体の長さを保持する項目データ、拡張値が格納されている場所を示す項目参照と、関連する項目の格納領域がない場合には NULL、および拡張のフラグから成ります。
関数呼び出しにパラメータを追加するような拡張を、入力または出力時に実行できます。すなわち、拡張は、アプリケーションから CSA サービスへの入力パラメータとして渡すことができ、または、CSA サービスからアプリケーションへの出力パラメータとして渡すこともできます。拡張が入力パラメータの場合には、アプリケーションは、拡張構造体と、その拡張に関連するその他の構造体のためのメモリを割り当てます。拡張が出力パラメータの場合には、CSA サービスは必要に応じて、拡張の結果のための記憶領域を割り当てます。この場合、アプリケーションは、割り当てられた記憶領域を csa_free() 呼び出しによって解放しなければなりません。
サポートされていない拡張が要求された場合には、CSA_E_UNSUPPORTED_FUNCTION_EXT が返されます。
CSA API の CDE 実装は、CDE カレンダ・サーバへのアクセスを可能にするライブラリです。ライブラリとサーバとの通信には、ONC の RPC が使用されます。CDE 実装におけるカレンダ・サーバは、カレンダ・プロトコル・バージョン 2 から 5、およびデータ・バージョン 3 と 4 をサポートするバージョン 5 です。カレンダ・プロトコルのバージョン 2 から 4 とデータ・バージョン 3 は、OpenWindows カレンダ・マネージャへの下位互換を確保するためのものです。カレンダ・プロトコル・バージョン 5 とデータ・バージョン 4 は CSA インタフェースとデータの拡張性をサポートします。
表 10-2 サポートされるサーバのバージョンとデータのバージョン
サーバのバージョン |
データのバージョン |
---|---|
2 |
1 |
3 |
2 |
4 |
3 |
5 |
3、4 |
2 つのアクセス・モデルがカレンダ API によってサポートされています。XAPIA CSA 仕様において指定されているアクセス・モデルは、データ・バージョン 4 のためだけにサポートされています。OpenWindows カレンダ・マネージャのアクセス・モデルは、データ・バージョン 1 から 3 までのためにサポートされています。OpenWindows のカレンダ・マネージャ・アクセス・モデルでは、カレンダのアクセス許可は、アクセス権を指定するアクセス・リストにより制御されます。次の 3 種類のアクセス権が定義されています。
CSA_X_DT_BROWSE_ACCESS (ユーザはカレンダのエントリをリストして、読み取ることができる)
CSA_X_DT_INSERT_ACCESS (ユーザはカレンダのエントリを挿入できる)
CSA_X_DT_DELETE_ACCESS (ユーザはカレンダのエントリを削除できる)
カレンダ API はすべてのバージョンのカレンダへのアクセスを可能にするので、プログラマは、データ・バージョンに対応する正しいアクセス・モデルを使用して、アクセス・リストに含まれるアクセス権を解釈しなければなりません。
カレンダが作成されるとき、アクセス・リストを指定しないかぎり、デフォルトのアクセス・リストにユーザ名として world という 1 つのエントリが含まれます。world のアクセス権では、公開エントリをブラウズできます。world というユーザ名は、すべてのユーザを意味する特別の名前です。
デフォルトでは、カレンダの所有者と同じユーザ名を持つユーザは、任意のマシンから、所有者のアクセス権でカレンダにアクセスできます。さらに厳しいアクセス制御をするには、owner-user-name@host という書式の名前をカレンダのアクセス・リストに追加できます。このようなエントリをアクセス・リストに追加するときは、対応するアクセス権は、データ・バージョン 4 では CSA_OWNER_RIGHTS
、データ・バージョン 3 では (CSA_X_DT_BROWSE_ACCESS|CSA_X_DT_INSERT_ACCESS|CSA_X_DT_DELETE_ACCESS
) です。このようなエントリをアクセス・リストに追加した後は、指定されたホストからのユーザだけが所有者のすべての権利でカレンダにアクセスできます。
表 10-3 に、CSA データ構造をリストします。詳細は、関連するマニュアル・ページを参照してください。
表 10-3 CSA データ構造
データ型の名前 |
説明 |
---|---|
Access List |
カレンダ・ユーザのアクセスの権利構造体のリスト |
Attendee List |
出席者構造体のリスト |
Attribute |
属性構造体 |
Attribute Reference |
属性参照構造体 |
Boolean |
論理的な True または False を示す値 |
Buffer |
データ項目のポインタ |
Calendar User |
カレンダ・ユーザ構造体 |
Callback Data Structures |
コールバック・データ構造体 |
Date and Time |
日付と時間の指定 |
Date and Time List |
日付と時間の値のリスト |
Date and Time Range |
日付と時間の範囲 |
Entry Handle |
カレンダ項目のハンドル |
Enumerated |
計算の値を含むデータ型 |
Extension |
拡張構造体 |
Flags |
ビート・マスクのコンテナ |
Free Time |
空き時間構造体 |
Opaque Data |
不透明データ構造体 |
Reminder |
通知方法構造体 |
Reminder Reference |
通知方法参照構造体 |
Return Code |
関数が成功したこと、または失敗した理由を示す戻り値 |
Service Reference |
サービス参照構造体 |
Session Handle |
カレンダ・セッションのハンドル |
String |
文字列ポインタ |
Time Duration |
継続時間 |
表 10-4 に、共通デスクトップ環境でサポートされるカレンダ属性をリストします。詳細は、関連するマニュアル・ページを参照してください。カレンダ属性のリストは、拡張命名規則による拡張が可能です。
表 10-4 CSA カレンダ属性
属性名 |
記号名 |
サーバのバージョン |
データのバージョン |
読み取り専用 |
---|---|---|---|---|
Access List |
CSA_CAL_ATTR_ACCESS_LIST_ |
2-5 |
1-4 |
* |
Calendar Name |
CSA_CAL_ATTR_CALENDAR_NAME |
2-5 |
1-4 |
○ * |
Calendar Owner |
CSA_CAL_ATTR_CALENDAR_OWNER |
2-5 |
1-4 |
○ * |
Calendar Size |
CSA_CAL_ATTR_CALENDAR_SIZE |
5 |
3,4 |
○ |
Character Set |
CSA_CAL_ATTR_CHARACTER_SET |
5 |
4 |
○ |
Data Version** |
CSA_X_DT_CAL_ATTR_DATA_VERSION |
2-5 |
1-4 |
○ |
Date Created |
CSA_CAL_ATTR_DATE_CREATED |
5 |
4 |
○ |
Number Entries |
CSA_CAL_ATTR_NUMBER_ENTRIES |
2-5 |
1-4 |
○ |
Product Identifier |
CSA_CAL_ATTR_PRODUCT_IDENTIFIER |
2-5 |
1-4 |
○ |
Server Version** |
CSA_X_DT_CAL_ATTR_SERVER_VERSION |
2-5 |
1-4 |
○ |
Time Zone |
CSA_CAL_ATTR_TIME_ZONE |
5 |
4 |
○ |
Version |
CSA_CAL_ATTR_VERSION |
2-5 |
1-4 |
○ |
* カレンダ作成時に指定し、その後は読み取り専用になります。
** CDE のみ
次のカレンダ属性はサポートされません。
CSA_CAL_ATTR_COUNTRY CSA_CAL_ATTR_LANGUAGE CSA_CAL_ATTR_WORK_SCHEDULE
次の節では、表 10-4 にリストしたカレンダ属性について、追加の情報を提供します。
Access List
新しいカレンダが追加されるときにアクセス・リストが指定されなかった場合には、デフォルトのアクセス・リストには特殊ユーザ world が指定され、それに対応するアクセス権は CSA_VIEW_PUBLIC_ENTRIES になります。これは、公用のカレンダ・エントリのリストと読み取りのアクセス権を与えます。特殊ユーザ world には、すべてのユーザが含まれます。
Calendar Name
カレンダ名は、csa_add_calendar() によってカレンダが作成されるときに指定されます。読み取り専用であり、カレンダの作成後に変更できません。
Calendar Owner
カレンダ所有者は、csa_add_calendar() を呼び出してカレンダを作成するアプリケーションを実行しているユーザに設定されます。読み取り専用で、カレンダの作成後に変更できません。
Character Set
この値の読み取り設定には、CDE 共通ロケール名が使用されます。
CDE 定義済みカレンダ属性は、次のとおりです。
Server Version
この読み取り専用の属性は、カレンダを管理しているサーバのバージョン番号を示します。この属性は、CSA_VALUE_UINT32 型の属性です。
Data Version
この読み取り専用の属性は、カレンダのデータ・バージョンを示します。この属性は、CSA_VALUE_UINT32 型の属性です。
表 10-5 に、共通デスクトップ環境でサポートされる項目属性をリストします。詳細は、関連するマニュアル・ページを参照してください。項目属性のリストは、拡張命名規則による拡張が可能です。
表 10-5 CSA 項目属性
属性名 |
記号名 |
サーバのバージョン |
データのバージョン |
読み取り専用 |
---|---|---|---|---|
Audio Reminder |
CSA_ENTRY_ATTR_AUDIO_REMINDER |
2-5 |
1-4 |
* |
Character Set* |
CSA_X_DT_ENTRY_ATTR_CHARACTER _SET |
5 |
4 |
* |
Classification |
CSA_ENTRY_ATTR_CLASSIFICATION |
5 |
2-4 |
* |
Date Completed |
CSA_ENTRY_ATTR_DATE_COMPLETED |
5 |
4 |
* |
Date Created |
CSA_ENTRY_ATTR_DATE_CREATED |
5 |
4 |
○ |
Description |
CSA_ENTRY_ATTR_DESCRIPTION |
5 |
4 |
* |
Due Date |
CSA_ENTRY_ATTR_DUE_DATE |
5 |
4 |
* |
End Date |
CSA_ENTRY_ATTR_END_DATE |
2-5 |
1-4 |
* |
Exception Dates |
CSA_ENTRY_ATTR_EXCEPTION_DATES |
5 |
4 |
* |
Flashing Reminder |
CSA_ENTRY_ATTR_FLASHING_ REMINDER |
2-5 |
1-4 |
* |
Last Update |
CSA_ENTRY_ATTR_LAST_UPDATE |
5 |
4 |
○ |
Mail Reminder |
CSA_ENTRY_ATTR_MAIL_REMINDER |
2-5 |
1-4 |
* |
Number Recurrences |
CSA_ENTRY_ATTR_NUMBER_ RECURRENCES |
5 |
4 |
○ |
Organizer |
CSA_ENTRY_ATTR_ORGANIZER |
2-5 |
1-4 |
○ |
Popup Reminder |
CSA_ENTRY_ATTR_POPUP_REMINDER |
2-5 |
1-4 |
* |
Priority |
CSA_ENTRY_ATTR_PRIORITY |
5 |
4 |
* |
Recurrence Rule |
CSA_ENTRY_ATTR_RECURRENCE_RULE |
5 |
4 |
* |
Reference Identifier |
CSA_ENTRY_ATTR_REFERENCE_ IDENTIFIER |
2-5 |
1-4 |
○ |
Repeat Interval* |
CSA_X_ENTRY_ATTR_REPEAT_INTERVAL |
2-5 |
1-4 |
** |
Repeat Occurrence* |
CSA_X_ENTRY_ATTR_REPEAT_ OCCURRENCE_NUM |
2-5 |
1-4 |
** |
Repeat Times* |
CSA_X_ENTRY_ATTR_REPEAT_TIMES |
2-5 |
1-4 |
** |
Repeat Type* |
CSA_X_DT_ENTRY_ATTR_REPEAT_TYPE |
2-5 |
1-4 |
** |
Sequence End Date* |
CSA_X_ENTRY_ATTR_SEQUENCE_END_ DATE |
2-5 |
1-4 |
** |
Showtimes* |
CSA_X_ENTRY_ATTR_SHOWTIME |
2-5 |
1-4 |
* |
Sponsor |
CSA_ENTRY_ATTR_SPONSOR |
5 |
4 |
* |
Start Date |
CSA_ENTRY_ATTR_START_DATE |
2-5 |
1-4 |
* |
Status |
CSA_ENTRY_ATTR_STATUS |
2-5 |
1-4 |
* |
Subtype |
CSA_ENTRY_ATTR_SUBTYPE |
2-5 |
1-4 |
* |
Summary |
CSA_ENTRY_ATTR_SUMMARY |
2-5 |
1-4 |
* |
Transparency |
CSA_ENTRY_ATTR_TIME_ TRANSPARENCY |
5 |
4 |
* |
Type |
CSA_ENTRY_ATTR_TYPE |
2-5 |
1-4 |
○*** |
* CDE のみ
** データ・バージョン 1 から 3 については、この属性は指定または変更できます。ただし、データ・バージョン 4 については読み取り専用です。データ・バージョン 4 では、エントリ属性 CSA_ENTRY_ATTR_RECURRENCE_RULE から値が取られます。
***カレンダ作成時に指定し、その後は読み取り専用になります。
次のカレンダ属性はサポートされません。
CSA_ENTRY_ATTR_ATTENDEE_LIST CSA_ENTRY_ATTR_EXCEPTION_RULE CSA_ENTRY_ATTR_RECURRING_DATES CSA_ENTRY_ATTR_SEQUENCE_NUMBER
次の節では、表 10-5 にリストした項目属性について、追加の情報を提供します。
Organizer
項目の主催者は、csa_add_entry() を呼び出してカレンダに項目を追加するアプリケーションを実行しているユーザに設定されます。読み取り専用で、項目の追加後に変更できません。
Reference Identifier
項目の参照識別子は、カレンダ内の項目の固有な識別子と、カレンダの名前と位置を含んだ文字列です。形式は n:calendar@location です。n は、カレンダ内の項目を固有に識別する番号です。calendar は、カレンダ名です。location は、カレンダが格納されているマシン名です。
Status
CDE では、次の追加のステータス値を定義します。
CSA_X_DT_STATUS_ACTIVE CSA_X_DT_STATUS_DELETE_PENDING CSA_X_DT_STATUS_ADD_PENDING CSA_X_DT_STATUS_COMMITTED CSA_X_DT_STATUS_CANCELLED
Type
この値は読み取り専用で、項目の追加後に変更できません。CDE では、次の追加の型の値を定義します。
CSA_X_DT_TYPE_OTHER
CDE 定義済み項目属性は、次のとおりです。
Show Time
この属性の値は、項目の開始時間と終了時間をユーザに対して表示するかどうかを示します。csa_update_entry_attributes() により変更できます。この属性は、CSA_VALUE_SINT32 型の属性です。
Repeat Type
項目の反復の頻度、すなわち、どれくらいの間隔で項目を繰り返すかを示します。
この属性は、CSA_VALUE_UINT32 型の属性です。
次の値が定義されています。
CSA_X_DT_REPEAT_ONETIME CSA_X_DT_REPEAT_DAILY CSA_X_DT_REPEAT_WEEKLY CSA_X_DT_REPEAT_BIWEEKLY CSA_X_DT_REPEAT_MONTHLY_BY_WEEKDAY CSA_X_DT_REPEAT_MONTHLY_BY_DATE CSA_X_DT_REPEAT_YEARLY CSA_X_DT_REPEAT_EVERY_NDAY CSA_X_DT_REPEAT_EVERY_NWEEK CSA_X_DT_REPEAT_EVERY_NMONTH CSA_X_DT_REPEAT_MON_TO_FRI CSA_X_DT_REPEAT_MONWEDFRI CSA_X_DT_REPEAT_TUETHUR CSA_X_DT_REPEAT_WEEKDAYCOMBO CSA_X_DT_REPEAT_OTHER CSA_X_DT_REPEAT_OTHER_WEEKLY CSA_X_DT_REPEAT_OTHER_MONTHLY CSA_X_DT_REPEAT_OTHER_YEARLY
Repeat Times
この属性は、項目を繰り返す回数を示します。この属性は、CSA_VALUE_UINT32 型の属性です。
Repeat Interval
この属性は、Repeat Type の CSA_X_DT_REPEAT_EVERY_NDAY、CSA_X_DT_REPEAT_EVERY_NWEEK、または CSA_X_DT_REPEAT_EVERY_NMONTH の何倍で項目を繰り返すかを示します。たとえば、この属性の値が 3 であり、Repeat Type が CSA_X_DT_REPEAT_EVERY_NWEEK の場合には、項目は 3 週間ごとに繰り返されます。この属性は、CSA_VALUE_UINT32 型の属性です。
Repeat Occurrence Number
項目の Repeat Type が CSA_X_DT_REPEAT_MONTHLY_BY_WEEKDAY の場合、この属性は、項目を繰り返す週を示します。この属性は、CSA_VALUE_SINT32 型の属性です。
Sequence End Date
この項目属性は、シーケンスの終了日付を示します。この属性は、CSA_VALUE_DATE_TIME 型の属性です。
データ・バージョン 1 から 3 については、次の属性を使用してエントリの反復情報を指定します。すべて読み取りおよび書き込み属性です。
CSA_X_DT_ENTRY_ATTR_REPEAT_TYPE CSA_X_DT_ENTRY_ATTR_REPEAT_TIMES CSA_X_DT_ENTRY_ATTR_REPEAT_INTERVAL CSA_X_DT_ENTRY_ATTR_REPEAT_OCCURRENCE_NUM CSA_X_DT_ENTRY_ATTR_SEQUENCE_END_DATE
データ・バージョン 4 については、エントリ属性 CSA_ENTRY_ATTR_RECURRENCE_RULE と CSA_ENTRY_ATTR_EXCEPTION_DATES を使用してカレンダ・エントリの反復情報を指定します。CSA_ENTRY_ATTR_RECURRENCE_RULE 属性の情報は、次の属性を使用して問い合わせることができます。
CSA_X_DT_ENTRY_ATTR_REPEAT_TYPE CSA_X_DT_ENTRY_ATTR_REPEAT_TIMES CSA_X_DT_ENTRY_ATTR_REPEAT_INTERVAL CSA_X_DT_ENTRY_ATTR_REPEAT_OCCURRENCE_NUM CSA_X_DT_ENTRY_ATTR_SEQUENCE_END_DATE
これらの計算された属性は、データ・バージョン 4 に対して読み取り専用です。
CSA_ENTRY_ATTR_STATUS
データ・バージョン 1 はこの属性をサポートしません。
データ・バージョン 2 と 3 は次の値をサポートします。
CSA_X_DT_STATUS_ACTIVE CSA_X_DT_STATUS_DELETE_PENDING CSA_X_DT_STATUS_ADD_PENDING CSA_X_DT_STATUS_COMMITTED CSA_X_DT_STATUS_CANCELLED
データ・バージョン 4 はすべての状態値をサポートします。
CSA_STATUS_ACCEPTED CSA_STATUS_NEEDS_ACTION CSA_STATUS_SENT CSA_STATUS_TENTATIVE CSA_STATUS_CONFIRMED CSA_STATUS_REJECTED CSA_STATUS_COMPLETED CSA_STATUS_DELEGATED CSA_X_DT_STATUS_ACTIVE CSA_X_DT_STATUS_DELETE_PENDING CSA_X_DT_STATUS_ADD_PENDING CSA_X_DT_STATUS_COMMITTED CSA_X_DT_STATUS_CANCELLED
CSA_ENTRY_ATTR_SUBTYPE
データ・バージョン 1 から 3 は次の値をサポートします。
CSA_SUBTYPE_APPOINTMENT CSA_SUBTYPE_HOLIDAY
データ・バージョン 4 はすべての定義値と、アプリケーションで定義する次のような値をサポートします。
CSA_SUBTYPE_APPOINTMENT CSA_SUBTYPE_CLASS CSA_SUBTYPE_HOLIDAY CSA_SUBTYPE_MEETING CSA_SUBTYPE_MISCELLANEOUS CSA_SUBTYPE_PHONE_CALL CSA_SUBTYPE_SICK_DAY CSA_SUBTYPE_SPECIAL_OCCASION CSA_SUBTYPE_TRAVEL CSA_SUBTYPE_VACATION
CSA_ENTRY_ATTR_TYPE
データ・バージョン 1 から 3 は次の値をサポートします。
CSA_TYPE_EVENT CSA_TYPE_TODO CSA_X_DT_TYPE_OTHER
データ・バージョン 4 は次のすべての定義値をサポートします。
CSA_TYPE_EVENT CSA_TYPE_TODO CSA_TYPE_MEMO CSA_X_DT_TYPE_OTHER
次に示すように、タイプとサブタイプの組み合わせによっては、データ・バージョン 1 から 3 でサポートします。
データ・バージョン 1 でサポートする組み合わせ
サブタイプ CSA_SUBTYPE_APPOINTMENT を持つ CSA_TYPE_EVENT サブタイプ値を持たない CSA_X_DT_TYPE_OTHER
データ・バージョン 2 と 3 でサポートする組み合わせ
サブタイプ CSA_SUBTYPE_APPOINTMENT を持つ CSA_TYPE_EVENT サブタイプ CSA_SUBTYPE_HOLIDAY を持つ CSA_TYPE_EVENT サブタイプ値を持たない CSA_TYPE_TODO サブタイプ値を持たない CSA_X_DT_TYPE_OTHER
CSA_X_ENTRY_ATTR_REPEAT_TYPE
データ・バージョン 1 から 3 については、この属性を使用してエントリの反復のタイプを指定します。
データ・バージョン 1 と 2 でサポートする値
CSA_X_DT_REPEAT_ONETIME CSA_X_DT_REPEAT_DAILY CSA_X_DT_REPEAT_WEEKLY CSA_X_DT_REPEAT_BIWEEKLY CSA_X_DT_REPEAT_MONTHLY_BY_DATE C SA_X_DT_REPEAT_YEARLY
データ・バージョン 3 でサポートする値
CSA_X_DT_REPEAT_ONETIME CSA_X_DT_REPEAT_DAILY CSA_X_DT_REPEAT_WEEKLY CSA_X_DT_REPEAT_BIWEEKLY CSA_X_DT_REPEAT_MONTHLY_BY_WEEKDAY CSA_X_DT_REPEAT_MONTHLY_BY_DATE CSA_X_DT_REPEAT_YEARLY CSA_X_DT_REPEAT_EVERY_NDAY CSA_X_DT_REPEAT_EVERY_NWEEK CSA_X_DT_REPEAT_EVERY_NMONTH CSA_X_DT_REPEAT_MON_TO_FRI CSA_X_DT_REPEAT_MONWEDFRI CSA_X_DT_REPEAT_TUETHUR CSA_X_DT_REPEAT_WEEKDAYCOMBO C SA_X_DT_REPEAT_OTHER
データ・バージョン 4 については、これは読み取り専用属性です。この値は、エントリ属性 CSA_ENTRY_ATTR_RECURRENCE_RULE から取られます。
次の一般的な情報は、すべての関数に適用されます。
文字セットの制限
カレンダ属性 CSA_CAL_ATTR_CHARACTER_SET は、カレンダのロケール情報を格納するために使用されます。
ライブラリの中で渡されるテキストでの説明以外のデータは、すべて ASCII 形式でなければなりませんが、ライブラリはシングルバイトだけでなくマルチバイト文字列もサポートします。
属性値の型チェックは、事前定義済み属性に対してだけ行われます。
項目属性 CSA_ENTRY_ATTR_RECURRENCE_RULE と CSA_ENTRY_ATTR_EXCEPTION_DATES は、カレンダ項目の反復情報を指定するために使用されます。CSA_ENTRY_ATTR_RECURRENCE_RULE 属性の情報は、次の属性を使用して問い合わせることができます。
CSA_X_DT_ENTRY_ATTR_REPEAT_TYPE CSA_X_DT_ENTRY_ATTR_REPEAT_TIMES CSA_X_DT_ENTRY_ATTR_REPEAT_INTERVAL CSA_X_DT_ENTRY_ATTR_REPEAT_OCCURRENCE_NUM CSA_X_DT_ENTRY_ATTR_SEQUENCE_END_DATE
これらの計算された属性は、読み取り専用です。
CSA_calendar_user データ構造体は、ユーザまたはカレンダを指定します。アクセス・リスト内のユーザを指定するときには、user_name フィールドだけが使われ、他のフィールドはすべて無視されます。ログインするカレンダを指定するときには、calendar_address フィールドだけが使われ、他のフィールドはすべて無視されます。形式は calendar@location です。calendar はカレンダ名で、location はカレンダが格納されているマシン名です。
値の型が CSA_VALUE_ATTENDEE_LIST の属性はサポートされません。それらの値が指定された場合には CSA_E_INVALID_ATTRIBUTE_VALUE が返されます。
CSA_reminder データ構造体の中の repeat_count フィールドと snooze_time フィールドはカレンダに格納されますが、カレンダ・サービスはそれらの値を解釈せず、関連する通知方法はサーバによって一度しか返されません。
ユーザ・インタフェース拡張 CSA_X_UI_ID_EXT はサポートされていません。
Xt アプリケーション・コンテキスト (CSA_X_XT_APP_CONTEXT_EXT)
- Xt アプリケーション・コンテキストを指定する
- csa_register_callback() により使用される
- 入力
item_data: Xt アプリケーション・コンテキスト (XtAppContext)
- 出力なし
ユーザアクセス権の取得 (CSA_X_DT_GET_USER_ACCESS_EXT)
- カレンダに関するユーザのアクセス権を取得する
- csa_logon() により使用される
- 入力なし
- 出力
item_data: ユーザのアクセス権 (CSA_flags)
カレンダの文字セット属性の取得 (CSA_X_DT_GET_CAL_CHARSET_EXT)
- カレンダの文字セット属性を取得する
- csa_logon() により使用される
- 入力なし
- 出力
item_data: item_reference の文字列の長さ (CSA_uint32)
item_reference: 文字セット (CSA_string)
カレンダのサーバ・バージョンの取得 (CSA_X_DT_GET_SERVER_VERSION_EXT)
- カレンダのサーバ・バージョンを取得する
- csa_logon() と csa_list_calendars() により使用される
- 入力なし
- 出力
item_data: サーバ・バージョン (CSA_uint32)
カレンダのデータ・バージョンの取得 (CSA_X_DT_GET_DATA_VERSION_EXT)
- カレンダのデータ・バージョンを取得する
- csa_logon() により使用される
- 入力なし
- 出力
item_data: データ・バージョン (CSA_uint32)
この節では、CDE でサポートされる管理関数について説明します。関数のプロトタイプと戻りコードのリストは、各関数に含まれています。詳細は、関連するマニュアル・ページを参照してください。
解放 - カレンダ・サービスによって割り当てられたメモリを解放します。
プロトタイプ
CSA_return_code csa_free( CSA_buffer memory );
csa_free の戻り値
CSA_SUCCESS CSA_E_INVALID_MEMORY
カレンダのリスト - カレンダ・サーバによってサポートされるカレンダをリストします。
プロトタイプ
CSA_return_code csa_list_calendars( CSA_service_reference calendar_service, CSA_uint32 *number_names, CSA_calendar_user **calendar_names, CSA_extension *list_calendars_extensions);
サーバが実行されているホスト名が calendar_server に渡されなければなりません。
csa_list_calendars の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_NOT_SUPPORTED CSA_E_SERVICE_UNAVAILABLE
ログイン - カレンダ・サービスにログインして、カレンダとのセッションを確立します。
プロトタイプ
CSA_return_code csa_logon( CSA_service_reference calendar_service, CSA_calendar_user *user, CSA_string password, CSA_string character_set, CSA_string required_csa_version, CSA_session_handle *session, CSA_extension *logon_extensions);
引き数 calendar_service、password、character_set、および required_csa_version は使用されません。
user によって指示される CSA_calendar_user 構造体の calendar_address フィールドは、ログインするカレンダを指定します。形式は calendar@location です。calendar はカレンダ名であり、location はカレンダが格納されているホスト名です。
csa_logon の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_CALENDAR_NOT_EXIST CSA_E_INSUFFICIENT_MEMORY CSA_E_NO_AUTHORITY CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE CSA_X_DT_E_BACKING_STORE_PROBLEM
ログアウト - カレンダとのセッションを終了します。
プロトタイプ
CSA_return_code csa_logoff( CSA_session_handle session, CSA-extension *logoff_extensions);
csa_logoff の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE
構成の問い合わせ - インストールされた CSA 構成に関する情報を判断します。
プロトタイプ
CSA_return_code csa_query_configuration( CSA_session_handle session, CSA_enum item, CSA_buffer *reference, CSA_extension *query_configuration_extensions);
CDE では、次の項目はサポートされません。
CSA_CONFIG_CHARACTER_SET CSA_CONFIG_LINE_TERM CSA_CONFIG_VER_IMPLEM
csa_query_configuration の戻り値
CSA_SUCCESS CSA_E_INVALID_ENUM CSA_E_INVALID_PARAMETER CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_UNSUPPORTED_ENUM CSA_E_UNSUPPORTED_FUNCTION_EXT
この節では、CDE でサポートされるカレンダ管理関数について説明します。関数のプロトタイプと戻りコードのリストは、各関数に含まれています。詳細は、関連するマニュアル・ページを参照してください。
カレンダの追加 - カレンダ・サービスにカレンダを追加します。
プロトタイプ
CSA_return_code csa_add_calendar( CSA_session_handle session, CSA_calendar_user *user, CSA_uint32 number_attributes, CSA_attribute *calendar_attributes, CSA_extension *add_calendar_extensions);
最初の引き数 session は無視されます。
user によって示される CSA_calendar_user 構造体の calendar_address フィールドは、作成されるカレンダの名前と位置を指定します。形式は calendar@location です。calendar はカレンダ名であり、location はカレンダが格納されるホスト名です (たとえば my_calendar@my_host のようになります)。
csa_add_calendar の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_CALENDAR_EXISTS CSA_E_NO_AUTHORITY CSA_E_READONLY CSA_E_INVALID_ATTRIBUTE CSA_E_INVALID_ATTRIBUTE_VALUE CSA_E_UNSUPPORTED_ATTRIBUTE CSA_E_INVALID_DATE_TIME CSA_E_DISK_FULL CSA_X_DT_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
コールバックの呼び出し - 指定されたコールバック・リストに関連するコールバック関数を強制的に呼び出します。
プロトタイプ
CSA_return_code csa_call_callbacks( CSA_session_handle session, CSA_flags reason, CSA_extension *call_callbacks_extensions);
csa_call_callbacks の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INVALID_FLAG CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_X_DT_E_MT_UNSAFE
カレンダの削除 - カレンダ・サービスからカレンダを削除します。
プロトタイプ
CSA_return_code csa_delete_calendar( CSA_session_handle session, csa_extension *delete_calendar_extensions);
csa_delete_calendar の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_NOT_SUPPORTED CSA_E_NO_AUTHORITY CSA_X_DT_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
カレンダ属性のリスト - カレンダに関連するカレンダ属性名をリストします。
プロトタイプ
CSA_return_code csa_list_calendar_attributes( CSA_session_handle session, CSA_uint32 *number_names, CSA_attribute_reference **calendar_attributes_names, CSA_extension *list_calendar_attributes_extensions);
csa_list_calendar_attributes の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_NOT_SUPPORTED CSA_E_NO_AUTHORITY CSA_X_DT_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
カレンダ属性の読み取り - カレンダのカレンダ属性値を読み取り、返します。
プロトタイプ
CSA_return_code csa_read_calendar_attributes( CSA_session_handle session, CSA_uint32 number_names, CSA_attribute_reference *attribute_names, CSA_uint32 *number_attributes, CSA_attribute **calendar_attributes, CSA_extension *read_calendar_attributes_extensions);
csa_read_calendar_attributes の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
コールバック関数の登録 - カレンダの中で指定された種類の更新が行われるときに実行されるコールバック関数を登録します。
プロトタイプ
CSA_return_code csa_register_callback( CSA_session_handle session, CSA_flags reason, CSA_callback callback, CSA_buffer client_data, CSA_extension *register_callback_extensions);
csa_register_callbacks の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_INVALID_FLAG CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
コールバック関数の登録解除 - 指定されたコールバック関数の登録を解除します。
プロトタイプ
CSA_return_code csa_unregister_callback( CSA_session_handle session, CSA_flags reason, CSA_callback callback, CSA_buffer client_data, CSA_extension *unregister_callback_extensions);
csa_unregister_callback の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INVALID_SESSION_HANDLE CSA_E_INVALID_FLAG CSA_E_CALLBACK_NOT_REGISTERED CSA_E_FAILURE
カレンダ属性の更新 - カレンダのカレンダ属性値を更新します。
プロトタイプ
CSA_return_code csa_update_calendar_attributes( CSA_session_handle session, CSA_uint32 number_attributes, CSA_attribute *calendar_attributes, CSA_extension *update_calendar_attributes_extensions);
csa_update_calendar_attributes の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_NO_AUTHORITY CSA_E_INVALID_ATTRIBUTE_VALUE CSA_E_INVALID_ATTRIBUTE CSA_E_UNSUPPORTED_ATTRIBUTE CSA_E_READONLY CSA_E_INVALID_DATE_TIME CSA_E_DISK_FULL CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
この節では、CDE でサポートされる項目管理関数について説明します。関数のプロトタイプと戻りコードのリストは、各関数に含まれています。詳細は、関連するマニュアル・ページを参照してください。
項目の追加 - 指定されたカレンダに項目を追加します。
プロトタイプ
CSA_return_code csa_add_entry( CSA_session_handle session, CSA_uint32 number_attributes, CSA_attribute *entry_attributes, CSA_entry_handle *entry, CSA_extension *add_entry_extensions);
csa_add_entry の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_NO_AUTHORITY CSA_E_READONLY CSA_E_UNSUPPORTED_ATTRIBUTE CSA_E_INVALID_ATTRIBUTE CSA_E_INVALID_ATTRIBUTE_VALUE CSA_E_INVALID_DATE_TIME CSA_E_INVALID_RULE CSA_E_DISK_FULL CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
エントリを追加するときに指定する最小限の属性セットは次のとおりです。
データ・バージョン 1 から 3 の場合
指定する必要があるもの
CSA_ENTRY_ATTR_START_DATE CSA_ENTRY_ATTR_TYPE
指定しないとデフォルトで設定されるもの
CSA_ENTRY_ATTR_CLASSIFICATION (CSA_CLASS_PUBLIC) CSA_ENTRY_ATTR_STATUS (CSA_X_DT_STATUS_ACTIVE) CSA_ENTRY_ATTR_SUBTYPE (CSA_SUBTYPE_APPOINTMENT for type CSA_TYPE_EVENT; this attribute is not supported for type CSA_TYPE_TODO) CSA_ENTRY_ATTR_SUMMARY (NULL string) CSA_X_ENTRY_ATTR_REPEAT_TYPE (CSA_X_REPEAT_ONETIME) CSA_X_ENTRY_ATTR_SHOWTIME (1 => true)
データ・バージョン 4 の場合
指定する必要があるもの
CSA_ENTRY_ATTR_START_DATE CSA_ENTRY_ATTR_TYPE
指定しないとデフォルトで設定されるもの
CSA_ENTRY_ATTR_CLASSIFICATION (CSA_CLASS_PUBLIC) CSA_ENTRY_ATTR_STATUS (CSA_X_STATUS_ACTIVE) CSA_ENTRY_ATTR_SUBTYPE (CSA_SUBTYPE_APPOINTMENT for type CSA_TYPE_EVENT) CSA_ENTRY_ATTR_SUMMARY (NULL string) CSA_X_ENTRY_ATTR_SHOWTIME (1 =>true)
項目の削除 - 指定されたカレンダから項目を削除します。
プロトタイプ
CSA_return_code csa_delete_entry( CSA_session_handle session, CSA_entry_handle entry, CSA_enum delete_scope, CSA_extension *delete_entry_extensions);
csa_delete_entry の戻り値
CSA_SUCCESS CSA_E_INVALID_ENUM CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_INVALID_ENTRY_HANDLE CSA_E_NO_AUTHORITY CSA_X_DT_E_ENTRY_NOT_FOUND CSA_E_DISK_FULL CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
項目のリスト - 属性検索基準のすべてに一致するカレンダ項目をリストします。
プロトタイプ
CSA_return_code csa_list_entries( CSA_session_handle session, CSA_uint32 number_attributes, CSA_attribute *entry_attributes, CSA_enum *list_operators, CSA_uint32 *number_entries, CSA_entry_handle **entries, CSA_extension *list_entries_extensions);
list_operators で指定される演算子について、さらに詳しく説明します。
属性値の型 CSA_VALUE_REMINDER、CSA_VALUE_CALENDAR_USER、および CSA_VALUE_DATE_TIME_RANGE については、演算子 CSA_MATCH_ANY と CSA_MATCH_EQUAL_TO だけがサポートされます。
属性値の型 CSA_VALUE_STRING については、演算子 CSA_MATCH_ANY、CSA_MATCH_EQUAL_TO、CSA_MATCH_NOT_EQUAL_TO、および CSA_MATCH_CONTAIN だけがサポートされます。演算子 CSA_MATCH_CONTAIN は、CSA_VALUE_STRING 型の属性にだけ適用されます。
値の型が CSA_VALUE_OPAQUE_DATA、CSA_VALUE_ACCESS_LIST、 CSA_VALUE_ATTENDEE_LIST、および CSA_VALUE_DATE_TIME_LIST の属性の照合はサポートされません。唯一の例外は、属性 CSA_ENTRY_ATTR_REFERENCE_IDENTIFIER です。演算子 CSA_MATCH_EQUAL_TO は、この属性に対してサポートされます。
csa_list_entries の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_NO_AUTHORITY CSA_E_INVALID_ATTRIBUTE_VALUE CSA_E_INVALID_DATE_TIME CSA_E_INVALID_ENUM CSA_E_UNSUPPORTED_ENUM CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
項目属性のリスト - 指定された項目に関連する項目の属性名をリストします。
プロトタイプ
CSA_return_code csa_list_entry_attributes( CSA_session_handle session, CSA_entry_handle entry, CSA_uint32 *number_names, CSA_attribute_reference **entry_attribute_names, CSA_extension *list_entry_attributes_extensions);
csa_list_entry_attributes の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_INVALID_ENTRY_HANDLE CSA_X_E_ENTRY_NOT_FOUND CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
項目シーケンスのリスト - カレンダ項目に関連する再帰的カレンダ項目をリストします。
プロトタイプ
CSA_return_code csa_list_entry_sequence( CSA_session_handle session, CSA_entry_handle entry, CSA_date_time_range time_range, CSA_uint32 *number_entries, CSA_entry_handle **entry_list, CSA_extension *list_entry_sequences_extensions);
指定された項目が一回限りの項目の場合には、CSA_E_INVALID_PARAMETER が返されます。
csa_list_entry_sequence の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_INVALID_ENTRY_HANDLE CSA_E_INVALID_DATE_TIME CSA_X_E_ENTRY_NOT_FOUND CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
項目属性の読み取り - 指定された項目のカレンダ項目属性値を読み取り、返します。
プロトタイプ
CSA_return_code csa_read_entry_attributes( CSA_session_handle session, CSA_entry_handle entry, CSA_uint32 number_names, CSA_attribute_reference *attribute_names, CSA_uint32 *number_attributes, CSA_attribute **entry_attributes, CSA_extension *read_entry_attributes_extensions);
csa_read_entry_attributes の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_INVALID_ENTRY_HANDLE CSA_X_E_ENTRY_NOT_FOUND CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
次の通知方法の読み取り - 特定の時間を基準として、指定されたカレンダの中の特定の種類の次の通知方法を読み取ります。
プロトタイプ
CSA_return_code csa_read_next_reminder( CSA_session_handle session, CSA_uint32 number_names, CSA_attribute_reference *reminder_names, CSA_date_time given_time, CSA_uint32 *number_reminders, CSA_reminder_reference **reminder_references, CSA_extension *read_next_reminder_extensions);
csa_read_next_reminder の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_INVALID_DATE_TIME CSA_E_NO_AUTHORITY CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
項目属性の更新 - カレンダ項目属性を更新します。
プロトタイプ
CSA_return_code csa_update_entry_attributes( CSA_session_handle session, CSA_entry_handle entry, CSA_enum update_scope, CSA_boolean update_propagation, CSA_uint32 number_attributes, CSA_attribute *entry_attributes, CSA_entry_handle *new_entry, CSA_extension *update_entry_attributes_extensions);
更新の伝達はサポートされません。update_propagation 引き数は CSA_FALSEに設定してください。
csa_update_entry_attributes の戻り値
CSA_SUCCESS CSA_E_INVALID_PARAMETER CSA_E_UNSUPPORTED_FUNCTION_EXT CSA_E_INSUFFICIENT_MEMORY CSA_E_INVALID_SESSION_HANDLE CSA_E_INVALID_ENTRY_HANDLE CSA_E_NO_AUTHORITY CSA_E_READONLY CSA_E_INVALID_ENUM CSA_E_UNSUPPORTED_ATTRIBUTE CSA_E_INVALID_ATTRIBUTE CSA_E_INVALID_ATTRIBUTE_VALUE CSA_E_INVALID_DATE_TIME CSA_E_INVALID_RULE CSA_E_DISK_FULL CSA_X_E_BACKING_STORE_PROBLEM CSA_X_DT_E_INVALID_SERVER_LOCATION CSA_X_DT_E_SERVICE_NOT_REGISTERED CSA_X_DT_E_SERVER_TIMEOUT CSA_E_FAILURE CSA_E_SERVICE_UNAVAILABLE
サポートされない関数
次の関数は CDE でサポートされません。CSA_E_NOT_SUPPORTED
だけが返されます。
csa_add_event csa_add_memo csa_add_todo csa_free_time_search csa_look_up csa_restore csa_save
logoff() { CSA_return_code stat; /* セッションが必要ない場合は、csa_logoff を呼び出すことにより終了できます。 * 前の例で csa_logon により返されたセッションを終了します。 */ stat = csa_logoff(cal, NULL); } |
delete_calendar() { /* csa_logon() を呼び出すことによりカレンダ・セッションを確立後、 * csa_delete_calender() を使用してカレンダを削除できます。 */ CSA_return_code stat; stat = csa_delete_calendar(cal, NULL); } |