Edit Diff Annotate History
Upload
List
Recent
Alias
Top
Help
WOCGIGetQueryString : Edit
Last updated: Fri Mar 30 22:07:46 +0900 2007
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 \ }) いやあ、なにやら不毛な感じがしなくもないですね。 もっとシンプルな構造にできそうですが…。