Index: library/mongodb/mongoAPI.h =================================================================== diff -u -N -rc9ef41c49f482a38e89f7cffc54cabf909710425 -r2b56284a45054d5136ddfb67343a70655aba5666 --- library/mongodb/mongoAPI.h (.../mongoAPI.h) (revision c9ef41c49f482a38e89f7cffc54cabf909710425) +++ library/mongodb/mongoAPI.h (.../mongoAPI.h) (revision 2b56284a45054d5136ddfb67343a70655aba5666) @@ -1,7 +1,27 @@ +/* + * This source code file was generated by the C-code generator gentclAPI.tcl, + * part of the Next Scripting Framework. + */ +#if !defined(likely) +# if defined(__GNUC__) && __GNUC__ > 2 +/* Use gcc branch prediction hint to minimize cost of e.g. DTrace + * ENABLED checks. + */ +# define unlikely(x) (__builtin_expect((x), 0)) +# define likely(x) (__builtin_expect((x), 1)) +# else +# define unlikely(x) (x) +# define likely(x) (x) +# endif +#endif + + + + /* just to define the symbol */ -static Nsf_methodDefinition method_definitions[]; +static Nsf_methodDefinition method_definitions[20]; static CONST char *method_command_namespace_names[] = { "::mongo" @@ -74,17 +94,17 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoCloseIdx].paramDefs, method_definitions[NsfMongoCloseIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { mongo *connPtr = (mongo *)pc.clientData[0]; assert(pc.status == 0); return NsfMongoClose(interp, connPtr,pc.objv[0]); + } else { + return TCL_ERROR; } } @@ -93,19 +113,19 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoConnectIdx].paramDefs, method_definitions[NsfMongoConnectIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { CONST char *withReplica_set = (CONST char *)pc.clientData[0]; Tcl_Obj *withServer = (Tcl_Obj *)pc.clientData[1]; int withTimeout = (int )PTR2INT(pc.clientData[2]); assert(pc.status == 0); return NsfMongoConnect(interp, withReplica_set, withServer, withTimeout); + } else { + return TCL_ERROR; } } @@ -114,19 +134,19 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoCountIdx].paramDefs, method_definitions[NsfMongoCountIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { mongo *connPtr = (mongo *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *query = (Tcl_Obj *)pc.clientData[2]; assert(pc.status == 0); return NsfMongoCount(interp, connPtr, namespace, query); + } else { + return TCL_ERROR; } } @@ -135,17 +155,17 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFSCloseIdx].paramDefs, method_definitions[NsfMongoGridFSCloseIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfs *gfsPtr = (gridfs *)pc.clientData[0]; assert(pc.status == 0); return NsfMongoGridFSClose(interp, gfsPtr,pc.objv[0]); + } else { + return TCL_ERROR; } } @@ -154,19 +174,19 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFSOpenIdx].paramDefs, method_definitions[NsfMongoGridFSOpenIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { mongo *connPtr = (mongo *)pc.clientData[0]; CONST char *dbname = (CONST char *)pc.clientData[1]; CONST char *prefix = (CONST char *)pc.clientData[2]; assert(pc.status == 0); return NsfMongoGridFSOpen(interp, connPtr, dbname, prefix); + } else { + return TCL_ERROR; } } @@ -175,18 +195,18 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFSRemoveFileIdx].paramDefs, method_definitions[NsfMongoGridFSRemoveFileIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfs *gfsPtr = (gridfs *)pc.clientData[0]; CONST char *filename = (CONST char *)pc.clientData[1]; assert(pc.status == 0); return NsfMongoGridFSRemoveFile(interp, gfsPtr, filename); + } else { + return TCL_ERROR; } } @@ -195,12 +215,10 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFSStoreFileIdx].paramDefs, method_definitions[NsfMongoGridFSStoreFileIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfs *gfsPtr = (gridfs *)pc.clientData[0]; CONST char *filename = (CONST char *)pc.clientData[1]; CONST char *remotename = (CONST char *)pc.clientData[2]; @@ -209,6 +227,8 @@ assert(pc.status == 0); return NsfMongoGridFSStoreFile(interp, gfsPtr, filename, remotename, contenttype); + } else { + return TCL_ERROR; } } @@ -217,17 +237,17 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFileCloseIdx].paramDefs, method_definitions[NsfMongoGridFileCloseIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfile *filePtr = (gridfile *)pc.clientData[0]; assert(pc.status == 0); return NsfMongoGridFileClose(interp, filePtr,pc.objv[0]); + } else { + return TCL_ERROR; } } @@ -236,17 +256,17 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFileGetContentTypeIdx].paramDefs, method_definitions[NsfMongoGridFileGetContentTypeIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfile *filePtr = (gridfile *)pc.clientData[0]; assert(pc.status == 0); return NsfMongoGridFileGetContentType(interp, filePtr); + } else { + return TCL_ERROR; } } @@ -255,17 +275,17 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFileGetContentlengthIdx].paramDefs, method_definitions[NsfMongoGridFileGetContentlengthIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfile *filePtr = (gridfile *)pc.clientData[0]; assert(pc.status == 0); return NsfMongoGridFileGetContentlength(interp, filePtr); + } else { + return TCL_ERROR; } } @@ -274,17 +294,17 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFileGetMetaDataIdx].paramDefs, method_definitions[NsfMongoGridFileGetMetaDataIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfile *filePtr = (gridfile *)pc.clientData[0]; assert(pc.status == 0); return NsfMongoGridFileGetMetaData(interp, filePtr); + } else { + return TCL_ERROR; } } @@ -293,18 +313,18 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFileOpenIdx].paramDefs, method_definitions[NsfMongoGridFileOpenIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfs *fsPtr = (gridfs *)pc.clientData[0]; CONST char *filename = (CONST char *)pc.clientData[1]; assert(pc.status == 0); return NsfMongoGridFileOpen(interp, fsPtr, filename); + } else { + return TCL_ERROR; } } @@ -313,18 +333,18 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFileReadIdx].paramDefs, method_definitions[NsfMongoGridFileReadIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfile *filePtr = (gridfile *)pc.clientData[0]; int size = (int )PTR2INT(pc.clientData[1]); assert(pc.status == 0); return NsfMongoGridFileRead(interp, filePtr, size); + } else { + return TCL_ERROR; } } @@ -333,18 +353,18 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoGridFileSeekIdx].paramDefs, method_definitions[NsfMongoGridFileSeekIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { gridfile *filePtr = (gridfile *)pc.clientData[0]; int offset = (int )PTR2INT(pc.clientData[1]); assert(pc.status == 0); return NsfMongoGridFileSeek(interp, filePtr, offset); + } else { + return TCL_ERROR; } } @@ -353,12 +373,10 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoIndexIdx].paramDefs, method_definitions[NsfMongoIndexIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { mongo *connPtr = (mongo *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *attributes = (Tcl_Obj *)pc.clientData[2]; @@ -370,6 +388,8 @@ assert(pc.status == 0); return NsfMongoIndex(interp, connPtr, namespace, attributes, withBackground, withDropdups, withSparse, withUnique); + } else { + return TCL_ERROR; } } @@ -378,19 +398,19 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoInsertIdx].paramDefs, method_definitions[NsfMongoInsertIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { mongo *connPtr = (mongo *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *values = (Tcl_Obj *)pc.clientData[2]; assert(pc.status == 0); return NsfMongoInsert(interp, connPtr, namespace, values); + } else { + return TCL_ERROR; } } @@ -399,12 +419,10 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoQueryIdx].paramDefs, method_definitions[NsfMongoQueryIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { mongo *connPtr = (mongo *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *query = (Tcl_Obj *)pc.clientData[2]; @@ -415,6 +433,8 @@ assert(pc.status == 0); return NsfMongoQuery(interp, connPtr, namespace, query, withAtts, withLimit, withSkip); + } else { + return TCL_ERROR; } } @@ -423,19 +443,19 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoRemoveIdx].paramDefs, method_definitions[NsfMongoRemoveIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { mongo *connPtr = (mongo *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *condition = (Tcl_Obj *)pc.clientData[2]; assert(pc.status == 0); return NsfMongoRemove(interp, connPtr, namespace, condition); + } else { + return TCL_ERROR; } } @@ -444,12 +464,10 @@ ParseContext pc; (void)clientData; - if (ArgumentParse(interp, objc, objv, NULL, objv[0], + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], method_definitions[NsfMongoUpdateIdx].paramDefs, method_definitions[NsfMongoUpdateIdx].nrParameters, 0, 1, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { + &pc) == TCL_OK)) { mongo *connPtr = (mongo *)pc.clientData[0]; CONST char *namespace = (CONST char *)pc.clientData[1]; Tcl_Obj *cond = (Tcl_Obj *)pc.clientData[2]; @@ -460,10 +478,12 @@ assert(pc.status == 0); return NsfMongoUpdate(interp, connPtr, namespace, cond, values, withUpsert, withAll); + } else { + return TCL_ERROR; } } -static Nsf_methodDefinition method_definitions[] = { +static Nsf_methodDefinition method_definitions[20] = { {"::mongo::close", NsfMongoCloseStub, 1, { {"conn", NSF_ARG_REQUIRED, 1, Nsf_ConvertToPointer, NULL,NULL,"mongo",NULL,NULL,NULL,NULL,NULL}} },