mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 09:32:32 +01:00
37 lines
695 B
C
37 lines
695 B
C
|
// introspect.h
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "../stdafx.h"
|
||
|
#include "jsobj.h"
|
||
|
#include "pdfile.h"
|
||
|
|
||
|
auto_ptr<Cursor> getSpecialCursor(const char *ns);
|
||
|
|
||
|
class SingleResultObjCursor : public Cursor {
|
||
|
int i;
|
||
|
protected:
|
||
|
JSObjBuilder b;
|
||
|
void reg(const char *as); /* register as a certain namespace */
|
||
|
public:
|
||
|
SingleResultObjCursor() { i = 0; }
|
||
|
virtual bool ok() { return i == 0; }
|
||
|
virtual Record* _current() { assert(false); return 0; }
|
||
|
virtual DiskLoc currLoc() { assert(false); return DiskLoc(); }
|
||
|
|
||
|
virtual void fill() = 0;
|
||
|
|
||
|
virtual JSObj current() {
|
||
|
assert(i == 0);
|
||
|
fill();
|
||
|
return b.done();
|
||
|
}
|
||
|
|
||
|
virtual bool advance() {
|
||
|
i++;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|