Index: library/mongodb/mongoAPI.h =================================================================== diff -u -N -r62beaf105e751bb647d88153700253b4c6723127 -re3e8f375df1313380cd13a6cb97028569f99d729 --- library/mongodb/mongoAPI.h (.../mongoAPI.h) (revision 62beaf105e751bb647d88153700253b4c6723127) +++ library/mongodb/mongoAPI.h (.../mongoAPI.h) (revision e3e8f375df1313380cd13a6cb97028569f99d729) @@ -85,7 +85,7 @@ /* just to define the symbol */ -static Nsf_methodDefinition method_definitions[30]; +static Nsf_methodDefinition method_definitions[31]; static const char *method_command_namespace_names[] = { "::mongo" @@ -142,8 +142,10 @@ NSF_nonnull(2) NSF_nonnull(4); static int NsfMongoGridFileSeekStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) NSF_nonnull(2) NSF_nonnull(4); -static int NsfMongoJsonStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) +static int NsfMongoJsonGenerateStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) NSF_nonnull(2) NSF_nonnull(4); +static int NsfMongoJsonParseStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) + NSF_nonnull(2) NSF_nonnull(4); static int NsfMongoRunCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) NSF_nonnull(2) NSF_nonnull(4); static int NsfMongoStatusStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) @@ -201,8 +203,10 @@ NSF_nonnull(1) NSF_nonnull(2); static int NsfMongoGridFileSeek(Tcl_Interp *interp, mongoc_gridfs_file_t *gridfilePtr, int offset) NSF_nonnull(1) NSF_nonnull(2); -static int NsfMongoJson(Tcl_Interp *interp, Tcl_Obj *list) +static int NsfMongoJsonGenerate(Tcl_Interp *interp, Tcl_Obj *list) NSF_nonnull(1) NSF_nonnull(2); +static int NsfMongoJsonParse(Tcl_Interp *interp, Tcl_Obj *json) + NSF_nonnull(1) NSF_nonnull(2); static int NsfMongoRunCmd(Tcl_Interp *interp, int withNocomplain, mongoc_client_t *connPtr, const char *db, Tcl_Obj *cmd) NSF_nonnull(1) NSF_nonnull(3) NSF_nonnull(4) NSF_nonnull(5); static int NsfMongoStatus(Tcl_Interp *interp, mongoc_client_t *connPtr, Tcl_Obj *connObj) @@ -235,7 +239,8 @@ NsfMongoGridFileOpenIdx, NsfMongoGridFileReadIdx, NsfMongoGridFileSeekIdx, - NsfMongoJsonIdx, + NsfMongoJsonGenerateIdx, + NsfMongoJsonParseIdx, NsfMongoRunCmdIdx, NsfMongoStatusIdx } NsfMethods; @@ -804,22 +809,38 @@ } static int -NsfMongoJsonStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) { +NsfMongoJsonGenerateStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) { (void)clientData; if (objc != 2) { return NsfArgumentError(interp, "wrong # of arguments:", - method_definitions[NsfMongoJsonIdx].paramDefs, + method_definitions[NsfMongoJsonGenerateIdx].paramDefs, NULL, objv[0]); } - return NsfMongoJson(interp, objv[1]); + return NsfMongoJsonGenerate(interp, objv[1]); } static int +NsfMongoJsonParseStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) { + (void)clientData; + + + + if (objc != 2) { + return NsfArgumentError(interp, "wrong # of arguments:", + method_definitions[NsfMongoJsonParseIdx].paramDefs, + NULL, objv[0]); + } + + return NsfMongoJsonParse(interp, objv[1]); + +} + +static int NsfMongoRunCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) { ParseContext pc; (void)clientData; @@ -862,7 +883,7 @@ } } -static Nsf_methodDefinition method_definitions[30] = { +static Nsf_methodDefinition method_definitions[31] = { {"::mongo::collection::close", NsfCollectionCloseStub, 1, { {"collection", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Pointer, NULL,NULL,"mongoc_collection_t",NULL,NULL,NULL,NULL,NULL}} }, @@ -983,9 +1004,12 @@ {"gridfile", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Pointer, NULL,NULL,"mongoc_gridfs_file_t",NULL,NULL,NULL,NULL,NULL}, {"offset", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Int32, NULL,NULL,"int32",NULL,NULL,NULL,NULL,NULL}} }, -{"::mongo::json", NsfMongoJsonStub, 1, { +{"::mongo::json::generate", NsfMongoJsonGenerateStub, 1, { {"list", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, +{"::mongo::json::parse", NsfMongoJsonParseStub, 1, { + {"json", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} +}, {"::mongo::run", NsfMongoRunCmdStub, 4, { {"-nocomplain", 0, 0, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Pointer, NULL,NULL,"mongoc_client_t",NULL,NULL,NULL,NULL,NULL},