GET_call (HTTP シーケンシャルGET)
著者: 森 洋久 / joshua@globalbase.org ※
プロトタイプ
<GET_call/>
引数
なし
属性
dir 文字列 GET_call methodリクエストにおける、URL
評価形式
Applicative
所属エージェント
gbview
所属環境
HTTP
説明
xlsvのHTTPエージェント機能によりリクエストされた、GET_call methodオペレーションの本体の関数。これは、リクエストがあると、シーケンシャルに実行される。実際のオペレーションはパラレルに実行されるので、xlsvは GET を使う。
dir を解析し、gbview内に生成された地図画像バッファに対して対応した処理を行い、結果を返す。
dir はsearchクエリを持ったURLであり、http://server.domainname/xxx/yyy.cgi?search-query という形式です。/xxx/yyy.cgi?search-queryというように、ディレクトリパス名からでも動作します。search-queryの書式は、&で区切られた等式の列です。つまり、BNFで記述すると以下のように表すことが出来ます。
search-query ::= equation '&' search-query
| equation
equation ::= NAME '=' DATA
NAME=DATAについては以下の通りです。もし、以下の書式のなかにsearch-queryとして認められない文字が入っている場合は、%によってエスケープされます。使うコード系はUnicodeです。
▲ページトップへ戻る
戻り値
-
md=move 移動/画像取得モード
必須等式: target,layer,win_size
付加すると有効に働く等式: move,rotate,zoom,complete,nop
与えられた座標系、表示位置の画像を生成し、その画像をHTTPエージェントの image/jpeg の書式で返す。
-
md=rss RSS LONGフォーマット
必須等式: target,layer,win_size
付加すると有効に働く等式: move,rotate,zoom,complete,nop
与えられた座標系、表示位置の画像を生成し、その画像および画像バッファについての情報をHTTPエージェントの text/xml 形式に埋め込まれたRSS形式で返す。RSS形式については後述。
-
md=rss_short RSS SHORTフォーマット
必須等式: target,layer,win_size
付加すると有効に働く等式: move,rotate,zoom,complete,nop
与えられた座標系、表示位置の画像を生成し、その画像および画像バッファについての情報をHTTPエージェントの text/xml 形式に埋め込まれたRSS形式で返す。RSS形式については後述。
-
md=open 編集の開始
必須等式: なし
付加すると有効に働く等式: なし
プロット編集用セッションIDを返す。
正常戻り値は gvha-statusにtype="ok"にID着きフォーマット を text/xml 形式に埋め込んだもの。エラーは、 gvha-status の各コード。
-
md=insert 編集プロットの挿入
必須等式: target,position,vct,markImage,information
付加すると有効に働く等式: markTransparent
与えられた情報のプロットを新しく生成し登録する。ただし、これはgbviewのメモリ上に生成されるのみ。ファイルに書き込むためには、md=saveを実行する必要がある。
正常/エラーともに戻り値は gvha-status を text/xml 形式に埋め込んだもの。
-
md=update 編集プロットの情報更新
必須等式:
vct,objCode,information
付加すると有効に働く等式: なし
与えられたobjCodeのプロットの情報を更新する。ただし、これはgbviewのメモリ上のデータを更新するのみ。ファイルに書き込むためには、md=saveを実行する必要がある。
正常/エラーともに戻り値は gvha-status を text/xml 形式に埋め込んだもの。
-
md=delete 編集プロットの削除
必須等式: vct,objCode
付加すると有効に働く等式: なし
与えられた情報のプロットを削除する。ただし、これはgbviewのメモリ上が更新されるのみ。ファイルに書き込むためには、md=saveを実行する必要がある。
正常/エラーともに戻り値は gvha-status を text/xml 形式に埋め込んだもの。
-
md=emove 編集プロットの移動
必須等式: vct,objCode,position,markImage
付加すると有効に働く等式: markTransparent
与えられた情報のプロットを移動する。ただし、これはgbviewのメモリ上が更新されるのみ。ファイルに書き込むためには、md=saveを実行する必要がある。
正常/エラーともに戻り値は gvha-status を text/xml 形式に埋め込んだもの。
-
md=save 編集対象vctの保存
必須等式: vct
付加すると有効に働く等式: なし
更新されたvctをファイルへ書き出す。
正常/エラーともに戻り値は gvha-status を text/xml 形式に埋め込んだもの。
-
md=close 編集の終了
必須等式: sessionId
付加すると有効に働く等式: なし
セッションをクローズする。
正常/エラーともに戻り値は gvha-status を text/xml 形式に埋め込んだもの。
-
md=object 編集プロットの情報取得 必須等式: vct,objCode
付加すると有効に働く等式: なし
オブジェクトの情報を取得する。 type="ok"のgvha-status構造にinformationを埋め込む。
正常戻り値は gvha-statusにtype="ok"にオブジェクトの情報つきフォーマット を text/xml 形式に埋め込んだもの。エラーは、 gvha-status の各コード。
RSS の書式
md=rss、md=rss_short時に返ってくるRSSフォーマットについて述べる。 これは、 (http://www.w3.org/1999/02/22-rdf-syntax-ns#)に規定されるRDFの書式に従った物である。以下のような形式なっている。
-
本体
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xml:lang="ja"
xmlns:gb="http://www.globalbase.org/spec/http-rss/0.1/"
xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/">
<channel rdf:about="[RSS_TARGET]">
<title> GLOBALBASE HTTP GATEWAY </title>
<link> [NEXT_TARGET] </link>
<description> GLOBALBASE HTTP GATEWAY </description>
<items>
<rdf:Seq>
<rdf:li rdf:resource="[NEXT_TARGET]"/>
<rdf:li rdf:resource="[C_STS_REFRERENCE]"/>*
</rdf:Seq>
</items>
</channel>
<item rdf:about="[NEXT_TARGET]">
<title> GLOBALBASE HTTP GATEWAY </title>
<link> [NEXT_TARGET] </link>
<description> GLOBALBASE HTTP GATEWAY </description>
<gb:status1>[STATUS1]</gb:status1>
<gb:status2>[STATUS2]</gb:status2>
<gb:status-n>[STATUS-N]</gb:status-n>
<gb:status-layer>[STATUS-LAYERS]</gb:statuslayer>
[PLOT_ELEMENT_AREA_LIST]
</item>
**
<item ref:about="[C_STS_RESOURCE]">
<title> GLOBALBASE HTTP GATEWAY </title>
<link>[C_STS_REFERENCE]</link>
<description> click reference </description>
</item>
**
</rdf:RDF>
「*」のついているタグまたは、「**」で囲われた要素は、内容が無い場合省略されます。
-
[RSS_TARGET]
md=rss/md=rss_shortで与えた、このRDFを返すURL。
-
[NEXT_TARGET]
[RSS_TARGET]のmove,zoom,rotateの移動処理を行い(正規化し)targetのみで記述されたURL。この[NEXT_TARGET]をアクセスしても、RSS_TARGETと等価な画像もしくはRSSが返ってくると期待出来る。
-
[C_STS_REFERENCE]
画像のステータス情報にクリック情報がある場合のそのクリック先のURL。あまり使わない。
-
[PLOT_ELEMENT_AREA_LIST] の書式は、画像中のプロットおよびオブジェクトの情報を保持する。以下の通り。
-
RSS SHORT フォーマットの場合。または、RSS LONGフォーマットで、オブジェクトがクリックの情報以外の情報を持たない場合。 以下のようにHTMLのclickable mapのエリア書式と同等の要素がエリアの数だけならびます。
<area name="[AREA_NAME]" coords="[TLx],[TLy],[BRx],[BRy]"
shape="rect" objCode="[CODE]"
resource="[vctURLまたはID]"/>
-
[AREA_NAME]
システムによってランダムに生成されるエリア名。
-
[TLx][TLy]
エリア矩形の左上の座標値
-
[BRx][BRy]
エリア矩形の右下の座標値
-
[objCode]
このオブジェクトのオブジェクトコード。詳しくは、 [UNDEF REF (gb-data-structure-vector)]を参照すること。
-
[vctURLまたはID]
そのオブジェクトの存在するvctファイルの参照URLまたは、 XL関数(環境)(HTTPSetup:Coordinate (座標識別子定義))で与えられる座標系ID
-
RSS LONG フォーマットの場合。
<area name="[AREA_NAME]" coords="[TLx],[TLy],[BRx],[BRy]"
shape="rect" objCode="[CODE]"
resource="[vctURLまたはID]">
[info_org]
[info_html]*
</area>
-
[AREA_NAME]
システムによってランダムに生成されるエリア名。
-
[TLx][TLy]
エリア矩形の左上の座標値
-
[BRx][BRy]
エリア矩形の右下の座標値
-
[objCode]
このオブジェクトのオブジェクトコード。詳しくは、 [UNDEF REF (gb-data-structure-vector)]を参照すること。
-
[vctURLまたはID]
そのオブジェクトの存在するvctファイルの参照URLまたは、 XL関数(環境)(HTTPSetup:Coordinate (座標識別子定義))で与えられる座標系ID
-
[info_org]
オブジェクトのもつ情報、 [UNDEF REF (gb-data-structure-vector)]に示される。information書式によります。
-
[info_html]
[info_org]をスタイルシートに通し、HTML化した結果。もし、スタイルシートが定義されていなかったり、エラーにより変換出来ない場合は、[info_html]は省略されます。
-
[STATUS-LAYERS] の書式は以下の通り、layer要素が1つまたは複数つらなります。
<layer>
<id>[座標系レイヤID]</id>
<entry_url>[座標系entry_URL]</entry_url>
<target_url>[座標系target_URL]</target_url>
<flags>[FLAGS]</flags>
</layer>
実際に画面に表示されている座標系の情報です。
-
[座標系レイヤID]
フレームバッファの、座標系を保持しているレイヤID。 XL関数(環境)(HTTPSetup:Coordinate (座標識別子定義))で与えられるIDとは異なります。
-
[座標系entry_URL][座標系target_URL]
座標系のentry URLとtarget URL。詳細は [UNDEF REF (gb-data-structure-coordinate)]を参照してください。
-
[FLAGS]
レイヤに設定されているフラグ。
エラー
-
XLE_PROTO_INV_FIELD_NAME
-
"dir attribute is required"
dir属性がない。
-
"invalid URL"
dirの書式がおかしい。
-
"corresponding gvha set is not defined ( dir)"
呼び出されたURLは存在しないURLであった。外部からのHTTP接続においては、URLが存在するかしないかは、 xlsv エージェントが事前にチェックするので、当該エラーが発生することは。ほぼない。このエラーが発生するのは、httpagnet.xlなどにおけるgbviewを直接セットアップするときのエラーである可能性が高い。当該エラーが発生する最大の要因としては、 Cache コマンドのエラーである。
-
XLE_PROTO_BUSY
利用出来る画像バッファがない。(使い果たされている。)
参考
バグ
▲ページトップへ戻る
|