// v8_db.h /* Copyright 2009 10gen Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include #include #include #include #include "engine_v8.h" #include "../client/dbclient.h" namespace mongo { // These functions may depend on the caller creating a handle scope and context scope. v8::Handle getMongoFunctionTemplate( V8Scope * scope, bool local ); // void installDBTypes( V8Scope * scope, v8::Handle& global ); void installDBTypes( V8Scope * scope, v8::Handle& global ); // the actual globals mongo::DBClientBase * getConnection( const v8::Arguments& args ); // Mongo members v8::Handle mongoConsLocal(V8Scope* scope, const v8::Arguments& args); v8::Handle mongoConsExternal(V8Scope* scope, const v8::Arguments& args); v8::Handle mongoFind(V8Scope* scope, const v8::Arguments& args); v8::Handle mongoInsert(V8Scope* scope, const v8::Arguments& args); v8::Handle mongoRemove(V8Scope* scope, const v8::Arguments& args); v8::Handle mongoUpdate(V8Scope* scope, const v8::Arguments& args); v8::Handle internalCursorCons(V8Scope* scope, const v8::Arguments& args); v8::Handle internalCursorNext(V8Scope* scope, const v8::Arguments& args); v8::Handle internalCursorHasNext(V8Scope* scope, const v8::Arguments& args); v8::Handle internalCursorObjsLeftInBatch(V8Scope* scope, const v8::Arguments& args); // DB members v8::Handle dbInit(V8Scope* scope, const v8::Arguments& args); v8::Handle collectionInit(V8Scope* scope, const v8::Arguments& args ); v8::Handle objectIdInit( V8Scope* scope, const v8::Arguments& args ); v8::Handle dbRefInit( V8Scope* scope, const v8::Arguments& args ); v8::Handle dbPointerInit( V8Scope* scope, const v8::Arguments& args ); v8::Handle dbTimestampInit( V8Scope* scope, const v8::Arguments& args ); v8::Handle binDataInit( V8Scope* scope, const v8::Arguments& args ); v8::Handle binDataToString( V8Scope* scope, const v8::Arguments& args ); v8::Handle numberLongInit( V8Scope* scope, const v8::Arguments& args ); v8::Handle numberLongToNumber(V8Scope* scope, const v8::Arguments& args); v8::Handle numberLongValueOf(V8Scope* scope, const v8::Arguments& args); v8::Handle numberLongToString(V8Scope* scope, const v8::Arguments& args); v8::Handle dbQueryInit( V8Scope* scope, const v8::Arguments& args ); v8::Handle dbQueryIndexAccess( uint32_t index , const v8::AccessorInfo& info ); v8::Handle collectionFallback( v8::Local name, const v8::AccessorInfo &info); v8::Handle bsonsize( V8Scope* scope, const v8::Arguments& args ); // call with v8 mutex: void enableV8Interrupt(); void disableV8Interrupt(); }