useDynLib(rmongodb, .registration = TRUE)

export(mongo.create)
export(mongo.get.err)
export(mongo.disconnect)
export(mongo.reconnect)
export(mongo.destroy)
export(mongo.is.connected)
export(mongo.get.socket)
export(mongo.get.primary)
export(mongo.is.master)
export(mongo.set.timeout)
export(mongo.get.timeout)
export(mongo.get.hosts)
export(mongo.authenticate)
export(mongo.add.user)
export(mongo.get.server.err)
export(mongo.get.server.err.string)
export(mongo.reset.err)
export(mongo.get.last.err)
export(mongo.get.prev.err)

export(mongo.insert)
export(mongo.insert.batch)

export(mongo.update.upsert)
export(mongo.update.multi)
export(mongo.update.basic)

export(mongo.update)
export(mongo.remove)
export(mongo.find.one)

export(mongo.find.cursor.tailable)
export(mongo.find.slave.ok)
export(mongo.find.oplog.replay)
export(mongo.find.no.cursor.timeout)
export(mongo.find.await.data)
export(mongo.find.exhaust)
export(mongo.find.partial.results)

export(mongo.find)
export(mongo.cursor.next)
export(mongo.cursor.value)
export(mongo.cursor.destroy)

export(mongo.index.unique)
export(mongo.index.drop.dups)
export(mongo.index.background)
export(mongo.index.sparse)

export(mongo.index.create)
export(mongo.count)
export(mongo.command)
export(mongo.distinct)
export(mongo.simple.command)
export(mongo.drop.database)
export(mongo.drop)
export(mongo.get.databases)
export(mongo.get.database.collections)
export(mongo.rename)

export(mongo.bson.empty)
export(mongo.bson.size)
export(mongo.bson.print)
export(print.mongo.bson)
export(mongo.bson.to.list)
export(mongo.bson.from.list)
export(mongo.bson.destroy)
export(mongo.bson.find)
export(mongo.bson.value)

export(mongo.bson.iterator.create)
export(mongo.bson.iterator.next)
export(mongo.bson.iterator.key)
export(mongo.bson.iterator.value)
export(mongo.bson.iterator.type)
export(mongo.bson.eoo,   mongo.bson.double,    mongo.bson.string,    mongo.bson.object,
       mongo.bson.array, mongo.bson.binary,    mongo.bson.undefined, mongo.bson.oid,
       mongo.bson.bool,  mongo.bson.date,      mongo.bson.null,      mongo.bson.regex,
       mongo.bson.dbref, mongo.bson.code,      mongo.bson.symbol,    mongo.bson.code.w.scope,
       mongo.bson.int,   mongo.bson.timestamp, mongo.bson.long)

export(mongo.oid.create)
export(mongo.oid.time)
export(mongo.oid.from.string)
export(mongo.oid.to.string)
export(as.character.mongo.oid)
export(mongo.oid.print)
export(print.mongo.oid)

export(mongo.timestamp.create)
export(mongo.code.create)
export(mongo.code.w.scope.create)
export(mongo.symbol.create)
export(mongo.undefined.create)
export(mongo.regex.create)

export(mongo.bson.buffer.create)
export(mongo.bson.from.buffer)
export(mongo.bson.buffer.append.int)
export(mongo.bson.buffer.append.string)
export(mongo.bson.buffer.append.bool)
export(mongo.bson.buffer.append.long)
export(mongo.bson.buffer.append.double)
export(mongo.bson.buffer.append.complex)
export(mongo.bson.buffer.append.null)
export(mongo.bson.buffer.append.undefined)
export(mongo.bson.buffer.append.symbol)
export(mongo.bson.buffer.append.code)
export(mongo.bson.buffer.append.code.w.scope)
export(mongo.bson.buffer.append.raw)
export(mongo.bson.buffer.append.time)
export(mongo.bson.buffer.append.timestamp)
export(mongo.bson.buffer.append.regex)
export(mongo.bson.buffer.append.oid)
export(mongo.bson.buffer.append.bson)
export(mongo.bson.buffer.append.element)
export(mongo.bson.buffer.append.list)
export(mongo.bson.buffer.append.object)
export(mongo.bson.buffer.append)
export(mongo.bson.buffer.start.object)
export(mongo.bson.buffer.start.array)
export(mongo.bson.buffer.finish.object)
export(mongo.bson.buffer.size)

export(mongo.gridfs.create)
export(mongo.gridfs.destroy)
export(mongo.gridfs.store.file)
export(mongo.gridfs.store)
export(mongo.gridfs.remove.file)
export(mongo.gridfs.find)
export(mongo.gridfile.destroy)
export(mongo.gridfile.get.descriptor)
export(mongo.gridfile.get.filename)
export(mongo.gridfile.get.length)
export(mongo.gridfile.get.chunk.size)
export(mongo.gridfile.get.chunk.count)
export(mongo.gridfile.get.content.type)
export(mongo.gridfile.get.upload.date)
export(mongo.gridfile.get.md5)
export(mongo.gridfile.get.metadata)
export(mongo.gridfile.get.chunk)
export(mongo.gridfile.get.chunks)
export(mongo.gridfile.read)
export(mongo.gridfile.seek)
export(mongo.gridfile.pipe)
export(mongo.gridfile.writer.create)
export(mongo.gridfile.writer.write)
export(mongo.gridfile.writer.finish)

export(mongo.shorthand)
