WOCGIGetQueryString
2007/03/30 (Fri) 22:07:46 JST
if (qs_len > 0) { /* クエリ文字列をURLに追加(デバッグ用) */ strcat(url, "?"); strcat(url, qs); wc.queryString.start = qs; wc.queryString.length = qs_len; WOLog(WO_INFO," new request with Query String: %s", qs); }
クエリ文字列を取得、WOURLComponentsにセットします。 WOURLComponentsの中身を操作するコードが出てきたので、ソースをチェックします。
struct WOURLComponents, WOURLComponent
WOURLComponents, WOURLComponent (WOURLCUtilities.h)
typedef struct _WOURLComponents { WOURLComponent prefix; WOURLComponent webObjectsVersion; WOURLComponent applicationName; WOURLComponent applicationNumber; WOURLComponent applicationHost; WOURLComponent sessionID; WOURLComponent pageName; WOURLComponent contextID; WOURLComponent senderID; WOURLComponent queryString; WOURLComponent suffix; WOURLComponent requestHandlerKey; WOURLComponent requestHandlerPath; } WOURLComponents; typedef struct _WOURLComponent { const char *start; unsigned int length; } WOURLComponent;
WOURLComponentsは、名前の通りWOURLComponentの集合です。 そのWOURLComponentの中身はどうかというと、単に文字列が入っているだけです。 せっかくですから、main()の先頭で登場した WOURLComponents_Initializer も続けて調べてみましょう。
WOURLComponents_Initializer (?MoreURLCUtilities.h)
#define NULL_WOURLComponent ((WOURLComponent){NULL,0}) #define WOURLComponents_Initializer ((WOURLComponents) { \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent, \ NULL_WOURLComponent \ })
いやあ、なにやら不毛な感じがしなくもないですね。 もっとシンプルな構造にできそうですが…。
Inverse Pages: WOCGIAdaptor