コード例 #1
0
ファイル: compil_generator.cpp プロジェクト: ggeorgiev/compil
void CompilGenerator::generateStructureSuffix(const StructureSPtr&)
{
    eot(declarationStream);
    closeBlock(declarationStream);
    eol(declarationStream);
    bAddNewLine = false;
}
コード例 #2
0
Block* BufferManager::getBlockFromRecordBlockPool() {
    Block* returnPtr = NULL;
    Block* currentBlock = recordBlockPool[currentRBPPos];
    if (currentBlock->active) {
        closeBlock(currentBlock);
    }
    currentBlock->active = true;
    returnPtr = currentBlock;
    currentRBPPos = (currentRBPPos + 1) % RECORD_BLOCK_NUM;
    return returnPtr;
}
コード例 #3
0
BufferManager::~BufferManager() {
    for (int i=0; i<RECORD_BLOCK_NUM; i++) {
        closeBlock(recordBlockPool[i]);
        delete recordBlockPool[i];
    }
    for (int i=0; i<INDEX_BLOCK_NUM; i++) {
        closeIndexBlock(indexBlockPool[i]);
        free(indexBlockPool[i]->address);
        delete indexBlockPool[i];
    }
}
コード例 #4
0
ファイル: compil_generator.cpp プロジェクト: ggeorgiev/compil
void CompilGenerator::generateEnumerationSuffix(const EnumerationSPtr&)
{
    eot(declarationStream);
    closeBlock(declarationStream);
}
コード例 #5
0
ファイル: compil_generator.cpp プロジェクト: ggeorgiev/compil
void CompilGenerator::generateMethodSuffix(const MethodSPtr&)
{
    closeBlock(declarationStream);
}
コード例 #6
0
ファイル: compil_generator.cpp プロジェクト: ggeorgiev/compil
void CompilGenerator::generateInterfaceSuffix(const InterfaceSPtr&)
{
    closeBlock(declarationStream);
}
コード例 #7
0
ファイル: compil_generator.cpp プロジェクト: ggeorgiev/compil
void CompilGenerator::generateFactorySuffix(const FactorySPtr&)
{
    eot(declarationStream);
    closeBlock(declarationStream);
}
コード例 #8
0
ファイル: compil_generator.cpp プロジェクト: ggeorgiev/compil
void CompilGenerator::generateSpecimenSuffix(const SpecimenSPtr&)
{
    eot(declarationStream);
    closeBlock(declarationStream);
}
コード例 #9
0
bool CppFlagsEnumerationGenerator::generate()
{
    includeHeaders(declarationStream, Dependency::global_section);

    std::string guard = frm->headerGuard("core/flags_enumeration.hpp");

    line()  << "#ifndef "
            << guard;
    eol(declarationStream);
    line()  << "#define "
            << guard;
    eol(declarationStream);
    eol(declarationStream);

    includeHeaders(declarationStream, Dependency::private_section);

    cf::TypeSPtr decoratedType = T;
    cf::TypeSPtr decoratedInherit = F;
    cf::TypeSPtr decoratedInheritRef = cstFRef;

    cf::ConstructorNameSPtr class_name = cf::constructorNameRef("flags_enumeration");
    cf::VariableNameSPtr memberValue = frm->memberVariableName(value);
    cf::ArgumentSPtr argMask = cf::argumentRef() << decoratedInheritRef
                                                 << cf::variableNameRef("mask");
    cf::ArgumentSPtr argValue = cf::argumentRef() << decoratedInheritRef
                                                  << value;

    line()  << "template<class "
            << T->name()->value()
            << ", class "
            << F->name()->value()
            << ">";
    eol(declarationStream);

    line()  << "class "
            << class_name;
    openBlock(declarationStream);

    line()  << "public:";
    eol(declarationStream, -1);

    line()  << "// Default constructor - sets the value to invalid";
    eol(declarationStream);
    fdef()  << (cf::constructorRef() << class_name);
    eofd(declarationStream);
    line()  << ": "
            << (cf::initializationRef() << memberValue
                                        << cf::parameterValueRef("0"));
    openBlock(declarationStream, 1);
    closeBlock(declarationStream);
    eol(declarationStream);

    fdef()  << (cf::constructorRef() << class_name
                                     << (cf::argumentRef() << decoratedType
                                                           << value));
    eofd(declarationStream);
    line()  << ": "
            << (cf::initializationRef() << memberValue
                                        << frm->parameterValue(value));
    openBlock(declarationStream, 1);
    closeBlock(declarationStream);
    eol(declarationStream);

    fdef()  << (cf::methodRef() << decoratedType
                                << fnValue
                                << cf::EMethodDeclaration::const_());
    openBlock(declarationStream);
    line()  << "return "
            << memberValue
            << ";";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Resets the flags included in the mask to the state in value");
    fdef()  << (cf::methodRef() << vd
                                << fnReset
                                << argMask
                                << argValue);
    openBlock(declarationStream);
    line()  << memberValue
            << " = value.value() | (this->value() & ~mask.value());";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Sets the flags included in the mask. Equivalent to reset(mask, all).");
    fdef()  << (cf::methodRef() << vd
                                << fnSet
                                << argMask);
    openBlock(declarationStream);
    line()  << memberValue
            << " |= mask.value();";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                   "Clears the flags included in the mask. Equivalent to reset(mask, nil).");
    fdef()  << (cf::methodRef() << vd
                                << fnClear
                                << argMask);
    openBlock(declarationStream);
    line()  << memberValue
            << " &= ~mask.value();";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                   "Turns the flags included in the mask.");
    fdef()  << (cf::methodRef() << vd
                                << fnTurn
                                << argMask);
    openBlock(declarationStream);
    line()  << memberValue
            << " ^= mask.value();";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Returns assemble of the current flags with the flags from the mask to "
                  "the state in value. This is immutable version of reset.");
    fdef()  << (cf::methodRef() << decoratedInherit
                                << fnAssemble
                                << argMask
                                << argValue
                                << cf::EMethodDeclaration::const_());
    openBlock(declarationStream);
    line()  << "return "
            << F->name()->value()
            << "(value.value() | (this->value() & ~mask.value()));";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Returns combination of the flags included in the mask. "
                  "This is immutable version of set.");
    fdef()  << (cf::methodRef() << decoratedInherit
                                << fnCombine
                                << argMask
                                << cf::EMethodDeclaration::const_());
    openBlock(declarationStream);
    line()  << "return "
            << F->name()->value()
            << "(value() | mask.value());";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Returns intersection of the flags included in the mask. "
                  "This is immutable version of clear.");
    fdef()  << (cf::methodRef() << decoratedInherit
                                << fnIntersect
                                << argMask
                                << cf::EMethodDeclaration::const_());
    openBlock(declarationStream);
    line()  << "return "
            << F->name()->value()
            << "(value() & ~mask.value());";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Returns flipped the flags included in the mask. "
                  "This is immutable version of turn.");
    fdef()  << (cf::methodRef() << decoratedInherit
                                << fnFlip
                                << argMask
                                << cf::EMethodDeclaration::const_());
    openBlock(declarationStream);
    line()  << "return "
            << F->name()->value()
            << "(value() ^ mask.value());";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Tests if the flags included in the mask are the same state as state in value");
    fdef()  << (cf::methodRef() << bl
                                << fnTest
                                << argMask
                                << argValue
                                << cf::EMethodDeclaration::const_());
    openBlock(declarationStream);
    line()  << "return (this->value() & mask.value()) == value.value();";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Tests if the flags included in the mask are set. Equivalent to test(mask, all).");
    fdef()  << (cf::methodRef() << bl
                                << fnIsSet
                                << argMask
                                << cf::EMethodDeclaration::const_());
    openBlock(declarationStream);
    line()  << "return (value() & mask.value()) == mask.value();";
    closeBlock(declarationStream);
    eol(declarationStream);

    commentInLine(declarationStream,
                  "Tests if the flags included in the mask are clear. Equivalent to test(mask, nil).");
    fdef()  << (cf::methodRef() << bl
                                << fnIsClear
                                << argMask
                                << cf::EMethodDeclaration::const_());
    openBlock(declarationStream);
    line()  << "return (value() & mask.value()) == 0;";
    closeBlock(declarationStream);
    eol(declarationStream);

    line()  << "protected:";
    eol(declarationStream, -1);

    line()  << T->name()->value()
            << " "
            << memberValue
            << ";";
    eol(declarationStream);

    closeBlock(declarationStream, "};");
    eol(declarationStream);

    line()  << "#endif // "
            << guard;
    eol(declarationStream);
    eol(declarationStream);

	return serializeStreams();
}