From: qwerty2501 Date: Wed, 19 Oct 2011 15:49:24 +0000 (+0900) Subject: 2011/10/20 0:49:24 X-Git-Tag: v0.001~115^2~41 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=63a9d5d0f583e26e97775e31263bf6d215a79c2e;p=nlite%2Fnlite.git 2011/10/20 0:49:24 --- diff --git a/JSONParser/JSONParser.vcxproj b/JSONParser/JSONParser.vcxproj new file mode 100644 index 0000000..067fea9 --- /dev/null +++ b/JSONParser/JSONParser.vcxproj @@ -0,0 +1,83 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1} + Win32Proj + JSONParser + + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_LIB;JSON32;%(PreprocessorDefinitions) + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;JSON32;%(PreprocessorDefinitions) + + + Windows + true + true + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/JSONParser/ReadMe.txt b/JSONParser/ReadMe.txt new file mode 100644 index 0000000..a6dc69b --- /dev/null +++ b/JSONParser/ReadMe.txt @@ -0,0 +1,34 @@ +======================================================================== + スタティック ライブラリ: JSONParser プロジェクトの概要 +======================================================================== + +この JSONParser ライブラリ プロジェクトは、AppWizard +により作成されました。 + +ソース ファイルはプロジェクトの一部として作成されませんでした。 + + +JSONParser.vcxproj + これは、アプリケーション ウィザードを使用して生成された VC++ + プロジェクトのメイン プロジェクト ファイルです。 + ファイルを生成した Visual C++ のバージョンに関する情報と、アプリケーション + ウィザードで選択されたプラットフォーム、 + 構成、およびプロジェクト機能に関する情報が含まれています。 + +JSONParser.vcxproj.filters + これは、アプリケーション ウィザードで生成された VC++ プロジェクトのフィルター + ファイルです。 + このファイルには、プロジェクト内のファイルとフィルターとの間の関連付けに関する + 情報が含まれています。 この関連付けは、特定のノー + ドで同様の拡張子を持つファイルのグループ化を + 示すために IDE で使用されます (たとえば、".cpp" ファイルは "ソース ファイル" + フィルターに関連付けられています)。 + +///////////////////////////////////////////////////////////////////////////// +その他のメモ : + +AppWizard では "TODO:" +コメントを使用して、ユーザーが追加またはカスタマイズする必要のあるソース +コードを示します。 + +///////////////////////////////////////////////////////////////////////////// diff --git a/JSONParser/json.c b/JSONParser/json.c new file mode 100644 index 0000000..2b1fbbe --- /dev/null +++ b/JSONParser/json.c @@ -0,0 +1,69 @@ +#include "json.h" + + +static JSONResult defaultObjectEvent(JSONValueType valueType,JSONString keyName,JSONParameter parameter); + +static JSONResult defaultArrayEvent(JSONValueType valueType,JSONParameter parameter); + +/// +///jsonƒp[ƒTƒIƒuƒWƒFƒNƒg +/// +typedef struct jsonparser_t{ + + JSONString keyName; //ƒIƒuƒWƒFƒNƒgƒL[–¼ + + JSONObjectDataEventHandler objectHandler; //ƒIƒuƒWƒFƒNƒgƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰ + + JSONArrayDataEventHandler arrayHandler; //”z—ñƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰ + + + +}JSONParser; + + + + + + + + + + + + + +JSONParser_P JSONParser_new(){ + + JSONParser_P parser = (JSONParser_P)malloc(sizeof(JSONParser)); + + parser->keyName = (JSONString)malloc(sizeof(JSONChar) * 1024); + parser->objectHandler = defaultObjectEvent; + parser->arrayHandler = defaultArrayEvent; + +} + + +JSONVoid JSONParser_delete(JSONParser_P *parser){ + + free((*parser)->keyName); + + free(*parser); + + parser = NULL; + + + +} + +static JSONResult defaultObjectEvent(JSONValueType valueType,JSONString keyName,JSONParameter parameter){ + + + return JSON_RESULT_OK; + +} + +static JSONResult defaultArrayEvent(JSONValueType valueType,JSONParameter parameter){ + + return JSON_RESULT_OK; + +} \ No newline at end of file diff --git a/JSONParser/json.h b/JSONParser/json.h new file mode 100644 index 0000000..e333f59 --- /dev/null +++ b/JSONParser/json.h @@ -0,0 +1,174 @@ +#pragma once + +// +//ƒCƒ“ƒNƒ‹[ƒh +///////////////////////////////////////////////////////////// + +#include + +// +//Œ^’è‹` +///////////////////////////////////////////////////////////// + + +/// +///json‰ðÍƒIƒuƒWƒFƒNƒgƒ|ƒCƒ“ƒ^ +/// +typedef struct jsonparser_t *JSONParser_P; + + +/// +///json•¶ŽšŒ^ +/// +typedef wchar_t JSONChar; + +/// +///json•¶Žš—ñƒ|ƒCƒ“ƒ^ +/// +typedef JSONChar *JSONString; + +/// +///json‰ðÍ‘Ώە¶ŽšŒ^ +/// +typedef char JSONInChar; + + +/// +///json‰ðÍ‘Ώە¶Žš—ñ +/// +typedef JSONInChar* JSONInString; + + + +/// +///json®”Œ^ +/// +#ifdef JSON32//32bitƒRƒ“ƒpƒCƒ‹‚̏ꍇ + +typedef int JSONInt; +typedef unsigned int UJSONInt; + +#else + +#ifdef JSON64//64bitƒRƒ“ƒpƒCƒ‹‚̏ꍇ + +typedef long long int JSONInt; +typedef unsigned long long int UJSONInt; + +#endif + +#endif + + +/// +///json voidŒ^ +/// +typedef void JSONVoid; +/// +///ƒ^ƒCƒvŽ¯•Ê•Ï”—pŒ^ +/// +typedef UJSONInt JSONValueType; + +/// +///ƒR[ƒ‹ƒoƒbƒNƒpƒ‰[ƒ[ƒ^Œ^ +/// +typedef UJSONInt JSONParameter; + + +/// +///–ß‚è’l +/// +typedef UJSONInt JSONResult; + + +/// +///ƒIƒuƒWƒFƒNƒg’l‰ðÍŽžƒR[ƒ‹ƒoƒbƒN +/// +typedef JSONResult (*JSONObjectDataEventHandler)(JSONValueType,JSONString,JSONParameter); + +/// +///”z—ñ’l‰ðÍŽžƒR[ƒ‹ƒoƒbƒN +/// +typedef JSONResult (*JSONArrayDataEventHandler)(JSONValueType,JSONParameter); + + + +// +//define +///////////////////////////////////////////////////////////////////////// + + + +#define JSON_RESULT_OK ((JSONResult)0) + + + + + + + + + + + + + + + +// +//ŠÖ” +////////////////////////////////////////////////////////////////////////// + + +#ifdef __cplusplus +extern "C" { +#endif + + + /// + ///ƒp[ƒTƒIƒuƒWƒFƒNƒg¶¬ + /// + extern JSONParser_P JSONParser_new(); + + /// + ///ƒp[ƒTƒIƒuƒWƒFƒNƒg”jŠü + /// + extern JSONVoid JSONParser_delete(JSONParser_P *parser); + + + + /// + ///ƒIƒuƒWƒFƒNƒgƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚ðƒZƒbƒg + /// + extern JSONVoid JSONParser_setObjectDataEventHandler(JSONObjectDataEventHandler handler); + + + /// + ///”z—ñƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚ðƒZƒbƒg + /// + extern JSONVoid JSONParser_setArrayDataEventHandler(JSONValueType valueType,JSONParameter parameter); + + + + + + + + + + + + + + + + + + + + + + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/nlib/nlib_include.h b/nlib/nlib_include.h index 9f93723..e67512b 100644 --- a/nlib/nlib_include.h +++ b/nlib/nlib_include.h @@ -3,6 +3,12 @@ #include +#ifdef WIN32 + +#define JSON32 + +#endif + #define WIN32_LEAN_AND_MEAN // Windows ƒwƒbƒ_[‚©‚çŽg—p‚³‚ê‚Ä‚¢‚È‚¢•”•ª‚ðœŠO‚µ‚Ü‚·B //windowsAPIŠÖ˜Aƒwƒbƒ_ @@ -35,6 +41,7 @@ #include #include #include +#include diff --git a/nlib/nlib_myList.c b/nlib/nlib_myList.c index a408df7..2fd1408 100644 --- a/nlib/nlib_myList.c +++ b/nlib/nlib_myList.c @@ -40,6 +40,7 @@ static NLIB_RESULT NicoMyList_getList(NicoVideoAuth_P pAuth,LPCWSTR objectName,N DWORD statusCodeSize = sizeof(statusCode); DWORD readSize; LPSTR readBuffer = NULL; + JSONParser_P jsonParser = NULL; @@ -58,6 +59,8 @@ static NLIB_RESULT NicoMyList_getList(NicoVideoAuth_P pAuth,LPCWSTR objectName,N readBuffer = (LPSTR)malloc(LENGTH_65536 * 30); + jsonParser = JSONParser_new(); + if(WinHttpReceiveResponse(hGetMyList,NULL) == FALSE){ rslt = NLIB_ERR_FAILED_NETWORK; @@ -86,6 +89,7 @@ static NLIB_RESULT NicoMyList_getList(NicoVideoAuth_P pAuth,LPCWSTR objectName,N end: free(readBuffer); + JSONParser_delete(&jsonParser); WinHttpCloseHandle(hNicoVideoSession); WinHttpCloseHandle(hGetMyList); diff --git a/nlib_driver/nlib_driver.cpp b/nlib_driver/nlib_driver.cpp index 60472e8..cddaa48 100644 --- a/nlib_driver/nlib_driver.cpp +++ b/nlib_driver/nlib_driver.cpp @@ -24,6 +24,7 @@ #pragma comment(lib,"shareCookie.lib") #pragma comment(lib,"nlib.lib") #pragma comment(lib,"winmm.lib") +#pragma comment(lib,"JSONParser.lib") NicoLiveStream_P nl; diff --git a/nlite.sln b/nlite.sln index 0e60a3b..28d9183 100644 --- a/nlite.sln +++ b/nlite.sln @@ -4,6 +4,7 @@ Microsoft Visual Studio Solution File, Format Version 11.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nlite", "nlite\nlite.vcxproj", "{658BF0ED-37AC-40B9-9FD4-BE00DB285BFC}" ProjectSection(ProjectDependencies) = postProject {52AD1F16-FE7F-4915-B97C-38E14BD47D9F} = {52AD1F16-FE7F-4915-B97C-38E14BD47D9F} + {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1} = {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1} {7866D782-163E-45F8-A5D0-ABB124B6DAAC} = {7866D782-163E-45F8-A5D0-ABB124B6DAAC} {ABB7389D-48D2-4A72-8020-626EAC5B115E} = {ABB7389D-48D2-4A72-8020-626EAC5B115E} {815832A8-9B8A-4B48-8372-76B9B50689F7} = {815832A8-9B8A-4B48-8372-76B9B50689F7} @@ -13,6 +14,7 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nlib", "nlib\nlib.vcxproj", "{7866D782-163E-45F8-A5D0-ABB124B6DAAC}" ProjectSection(ProjectDependencies) = postProject {52AD1F16-FE7F-4915-B97C-38E14BD47D9F} = {52AD1F16-FE7F-4915-B97C-38E14BD47D9F} + {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1} = {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1} {ABB7389D-48D2-4A72-8020-626EAC5B115E} = {ABB7389D-48D2-4A72-8020-626EAC5B115E} {815832A8-9B8A-4B48-8372-76B9B50689F7} = {815832A8-9B8A-4B48-8372-76B9B50689F7} {3D8CAFF3-A27F-4FEB-909F-E8BFDEE66BE1} = {3D8CAFF3-A27F-4FEB-909F-E8BFDEE66BE1} @@ -25,6 +27,7 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nlib_driver", "nlib_driver\nlib_driver.vcxproj", "{D6269C27-6C23-4512-83D1-89FDA6ED6ED0}" ProjectSection(ProjectDependencies) = postProject {52AD1F16-FE7F-4915-B97C-38E14BD47D9F} = {52AD1F16-FE7F-4915-B97C-38E14BD47D9F} + {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1} = {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1} {7866D782-163E-45F8-A5D0-ABB124B6DAAC} = {7866D782-163E-45F8-A5D0-ABB124B6DAAC} {ABB7389D-48D2-4A72-8020-626EAC5B115E} = {ABB7389D-48D2-4A72-8020-626EAC5B115E} {815832A8-9B8A-4B48-8372-76B9B50689F7} = {815832A8-9B8A-4B48-8372-76B9B50689F7} @@ -41,6 +44,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqliteManager", "sqliteMang {3D8CAFF3-A27F-4FEB-909F-E8BFDEE66BE1} = {3D8CAFF3-A27F-4FEB-909F-E8BFDEE66BE1} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSONParser", "JSONParser\JSONParser.vcxproj", "{B651AE6B-6D20-4612-B7C8-5788FC2ADDB1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -75,6 +80,10 @@ Global {815832A8-9B8A-4B48-8372-76B9B50689F7}.Debug|Win32.Build.0 = Debug|Win32 {815832A8-9B8A-4B48-8372-76B9B50689F7}.Release|Win32.ActiveCfg = Release|Win32 {815832A8-9B8A-4B48-8372-76B9B50689F7}.Release|Win32.Build.0 = Release|Win32 + {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1}.Debug|Win32.ActiveCfg = Debug|Win32 + {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1}.Debug|Win32.Build.0 = Debug|Win32 + {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1}.Release|Win32.ActiveCfg = Release|Win32 + {B651AE6B-6D20-4612-B7C8-5788FC2ADDB1}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE