示例#1
0
IndexNode IndexPage::newIndex(const char* key, int pageId, size_t cursor)
{
	syncFlag = false;
	size_t size = IndexNode::getSize(key);

	// Create from free space
	if (freeSpace() >= size)
	{
		IndexNode rec(*this, indexStartPos + indexSpace());
		rec.init(key, pageId, cursor);

		setIndexCount(indexCount() + 1);
		setIndexSpace(indexSpace() + size);
		setFreeSpace(freeSpace() - size);

		return rec;
	}

	// Check free node list
	try
	{
		IndexNode rec = freeList->findIndex(size);
		freeList->shrinkIndex(rec, size);

		// Init record
		rec.init(key, pageId, cursor);
		return rec;
	}
	catch (ReachLastIndex)
	{
		error("No space for new record");
		return IndexNode(*this, 0);		// Aviod Warning
	}
}
示例#2
0
void IndexPage::delIndex(size_t cursor)
{
	IndexNode rec = getIndex(cursor);
	if (!rec.isDeleted())
		setIndexCount(indexCount() - 1);
	rec.initDel(rec.getSize());
	freeList->addIndex(rec);
}
示例#3
0
void IndexPage::init()
{
	//initFile();
	initCache(true);
	setIndexCount(0);
	setIndexSpace(0);
	setFreeCursor(0);
	setFreeSpace(pageSize - headerSize);
	//sync();
}
示例#4
0
Cube::Cube(ShaderProgram* shaderProgram)
	:GameObject(shaderProgram)
{
	setVertexCount(8);
	setIndexCount(36);
    activateAttribute(3);
	activateAttribute(4);
	setAttribute(0, 0, vec3(-0.5f, -0.5f, -0.5f));
	setAttribute(0, 1, vec3(0.5f, -0.5f, -0.5f));
	setAttribute(0, 2, vec3(0.5f, -0.5f, 0.5f));
	setAttribute(0, 3, vec3(-0.5f, -0.5f, 0.5f));
	setAttribute(0, 4, vec3(-0.5f, 0.5f, -0.5f));
	setAttribute(0, 5, vec3(0.5f, 0.5f, -0.5f));
	setAttribute(0, 6, vec3(0.5f, 0.5f, 0.5f));
	setAttribute(0, 7, vec3(-0.5f, 0.5f, 0.5f));
	setAttribute(1, 0, vec4(0.0f, 1.0f, 0.0f, 1.0f));
	setAttribute(1, 1, vec4(0.0f, 0.0f, 1.0f, 1.0f));
	setAttribute(1, 2, vec4(1.0f, 0.0f, 0.0f, 1.0f));
	setAttribute(1, 3, vec4(0.0f, 1.0f, 0.0f, 1.0f));
	setAttribute(1, 4, vec4(0.0f, 0.0f, 1.0f, 1.0f));
	setAttribute(1, 5, vec4(1.0f, 0.0f, 0.0f, 1.0f));
	setAttribute(1, 5, vec4(0.0f, 0.0f, 1.0f, 1.0f));
	setAttribute(1, 7, vec4(1.0f, 0.0f, 0.0f, 1.0f));

	setIndex(0, 0);
	setIndex(1, 1);
	setIndex(2, 2);
	setIndex(3, 2);
	setIndex(4, 3);
	setIndex(5, 0);

	setIndex(6, 1);
	setIndex(7, 5);
	setIndex(8, 2);
	setIndex(9, 2);
	setIndex(10, 5);
	setIndex(11, 6);

	setIndex(12, 6);
	setIndex(13, 5);
	setIndex(14, 4);
	setIndex(15, 7);
	setIndex(16, 6);
	setIndex(17, 4);

	setIndex(18, 3);
	setIndex(19, 7);
	setIndex(20, 4);
	setIndex(21, 0);
	setIndex(22, 3);
	setIndex(23, 4);

	setIndex(24, 6);
	setIndex(25, 7);
	setIndex(26, 3);
	setIndex(27, 2);
	setIndex(28, 6);
	setIndex(29, 3);

	setIndex(30, 0);
	setIndex(31, 5);
	setIndex(32, 1);
	setIndex(33, 5);
	setIndex(34, 0);
	setIndex(35, 4);
}