Example #1
0
MojErr MojDbKindEngine::open(MojDb* db, MojDbReq& req)
{
	MojAssert(db);
	MojAssertWriteLocked(db->m_schemaLock);
	MojLogTrace(s_log);

	// open kind db and index seq
	m_db = db;
	MojDbStorageEngine* engine = db->storageEngine();
	MojDbStorageTxn* txn = req.txn();
	MojAssert(engine);
	MojErr err = engine->openDatabase(KindsDbName, txn, m_kindDb);
	MojErrCheck(err);
	err = engine->openDatabase(IndexIdsDbName, txn, m_indexIdDb);
	MojErrCheck(err);
	err = engine->openSequence(IndexIdsSeqName, txn, m_indexIdSeq);
	MojErrCheck(err);
	// built-in kinds
	err = addBuiltin(RootKindJson, req);
	MojErrCheck(err);
	err = addBuiltin(KindKindJson, req);
	MojErrCheck(err);
	err = addBuiltin(RevTimestampJson, req);
	MojErrCheck(err);
	err = addBuiltin(DbStateJson, req);
	MojErrCheck(err);
	err = addBuiltin(PermissionJson, req);
	MojErrCheck(err);
	err = addBuiltin(QuotaJson, req);
	MojErrCheck(err);
	// built-in indexes
	err = setupRootKind();
	MojErrCheck(err);
	// locale
	err = db->getLocale(m_locale, req);
	MojErrCheck(err);
	// load kinds from obj db
	err = loadKinds(req);
	MojErrCheck(err);

	return MojErrNone;
}
Example #2
0
 ASTScope(ASTScope *par = NULL, ScopeType st = Scope_Local, PackageDeclaration *pkg=0) :
     package(pkg), parent(par), type(st), owner(0)
 {
     if(!par) addBuiltin();
     if(par) package = par->package;
 }