Skip to content

Commit

Permalink
tags refactoring - pass1
Browse files Browse the repository at this point in the history
  • Loading branch information
ggeorgiev committed Jun 12, 2016
1 parent 1cea2dd commit e4e7783
Show file tree
Hide file tree
Showing 22 changed files with 97 additions and 44 deletions.
7 changes: 7 additions & 0 deletions src/doim/tag/tag.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ namespace doim
TagSPtr gTaskTag = Tag::global("task", gTaskTag);

TagSPtr gCrcTag = Tag::global("crc", gCrcTag);
TagSPtr gDependTag = Tag::global("depend", gDependTag);

TagSPtr gDbTag = Tag::global("db", gDbTag);
TagSPtr gParseTag = Tag::global("parse", gParseTag);
TagSPtr gSysTag = Tag::global("sys", gSysTag);
Expand All @@ -18,4 +20,9 @@ TagSPtr gDoneTag = Tag::global("done", gDoneTag);

TagSPtr gLoadTag = Tag::global("load", gLoadTag);
TagSPtr gSaveTag = Tag::global("save", gSaveTag);

TagSPtr gCxxTag = Tag::global("cxx", gCxxTag);
TagSPtr gObjTag = Tag::global("obj", gObjTag);
TagSPtr gProgramTag = Tag::global("program", gProgramTag);
TagSPtr gProtobufTag = Tag::global("protobuf", gProtobufTag);
}
7 changes: 7 additions & 0 deletions src/doim/tag/tag.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ class Tag : public Element<Tag, string>
extern TagSPtr gTaskTag;

extern TagSPtr gCrcTag;
extern TagSPtr gDependTag;

extern TagSPtr gDbTag;
extern TagSPtr gParseTag;
extern TagSPtr gSysTag;
Expand All @@ -43,4 +45,9 @@ extern TagSPtr gDoneTag;

extern TagSPtr gLoadTag;
extern TagSPtr gSaveTag;

extern TagSPtr gCxxTag;
extern TagSPtr gObjTag;
extern TagSPtr gProgramTag;
extern TagSPtr gProtobufTag;
}
2 changes: 1 addition & 1 deletion src/engine/cxx_engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ tpool::TaskSPtr CxxEngine::updateDbTask(const tpool::TaskSPtr& task,
task::gTPool->ensureScheduled(task);
EHTest(task->join());

doim::TagSetSPtr logTags = doim::TagSet::make(task->tags());
doim::TagSetSPtr logTags = doim::TagSet::make(*task->tags());
logTags->erase(doim::gTaskTag);
logTags = doim::TagSet::unique(logTags);

Expand Down
10 changes: 9 additions & 1 deletion src/task/cxx/cxx_object_file_crc_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,19 @@ bool CxxObjectFileCrcTask::check() const
return cxxObjectFile() != nullptr && cxxObjectFile()->isUnique();
}

static doim::TagSetSPtr gTags =
doim::TagSet::global({&doim::gCrcTag, &doim::gCxxTag, &doim::gObjTag}, gTags);

doim::TagSetSPtr CxxObjectFileCrcTask::tags() const
{
return gTags;
}

ECode CxxObjectFileCrcTask::operator()()
{
const auto& path = cxxObjectFile()->file()->path();

doim::TagSetSPtr logTags = doim::TagSet::make(tags());
doim::TagSetSPtr logTags = doim::TagSet::make(*tags());
logTags->erase(doim::gTaskTag);
logTags = doim::TagSet::unique(logTags);

Expand Down
6 changes: 1 addition & 5 deletions src/task/cxx/cxx_object_file_crc_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,7 @@ class CxxObjectFileCrcTask : public CrcTask<CxxObjectFileCrcTask, doim::CxxObjec
return std::get<0>(mArgs);
}

doim::TagSet tags() const override
{
return doim::TagSet{doim::gTaskTag, doim::gCrcTag};
}

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;
};
Expand Down
8 changes: 8 additions & 0 deletions src/task/cxx/cxx_program_crc_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@ bool CxxProgramCrcTask::check() const
return cxxProgram() != nullptr && cxxProgram()->isUnique();
}

static doim::TagSetSPtr gTags =
doim::TagSet::global({&doim::gCrcTag, &doim::gCxxTag, &doim::gProgramTag}, gTags);

doim::TagSetSPtr CxxProgramCrcTask::tags() const
{
return gTags;
}

ECode CxxProgramCrcTask::operator()()
{
const auto& objectFiles = cxxProgram()->cxxObjectFiles();
Expand Down
6 changes: 1 addition & 5 deletions src/task/cxx/cxx_program_crc_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,7 @@ class CxxProgramCrcTask : public CrcTask<CxxProgramCrcTask, doim::CxxProgramSPtr
return std::get<0>(mArgs);
}

doim::TagSet tags() const override
{
return doim::TagSet{doim::gTaskTag, doim::gCrcTag};
}

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;
};
Expand Down
10 changes: 9 additions & 1 deletion src/task/cxx/cxx_source_crc_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,19 @@ bool CxxSourceCrcTask::check() const
currentIncludeDirectory()->isUnique());
}

static doim::TagSetSPtr gTags =
doim::TagSet::global({&doim::gCrcTag, &doim::gCxxTag}, gTags);

doim::TagSetSPtr CxxSourceCrcTask::tags() const
{
return gTags;
}

ECode CxxSourceCrcTask::operator()()
{
const auto& path = apply_visitor(doim::vst::path(), cxxSource());

doim::TagSetSPtr logTags = doim::TagSet::make(tags());
doim::TagSetSPtr logTags = doim::TagSet::make(*tags());
logTags->erase(doim::gTaskTag);
logTags = doim::TagSet::unique(logTags);

Expand Down
6 changes: 1 addition & 5 deletions src/task/cxx/cxx_source_crc_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,7 @@ class CxxSourceCrcTask : public CxxSourceCrcTaskEnums,
return std::get<2>(mArgs);
}

doim::TagSet tags() const override
{
return doim::TagSet{doim::gTaskTag, doim::gCrcTag};
}

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;

Expand Down
8 changes: 8 additions & 0 deletions src/task/cxx/cxx_source_headers_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ bool CxxSourceHeadersTask::check() const
(cxxIncludeDirectory() == nullptr || cxxIncludeDirectory()->isUnique());
}

static doim::TagSetSPtr gTags =
doim::TagSet::global({&doim::gDependTag, &doim::gCxxTag}, gTags);

doim::TagSetSPtr CxxSourceHeadersTask::tags() const
{
return gTags;
}

ECode CxxSourceHeadersTask::operator()()
{
auto origin =
Expand Down
6 changes: 1 addition & 5 deletions src/task/cxx/cxx_source_headers_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,7 @@ class CxxSourceHeadersTask : public CxxSourceHeadersTaskEnums,
return mHeadersInfo;
}

doim::TagSet tags() const override
{
return doim::TagSet{doim::gTaskTag, doim::gParseTag};
}

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;

Expand Down
7 changes: 7 additions & 0 deletions src/task/db/db_put_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ bool DbPutTask::check() const
return key() != nullptr && key()->isUnique();
}

static doim::TagSetSPtr gTags = doim::TagSet::global({&doim::gDbTag}, gTags);

doim::TagSetSPtr DbPutTask::tags() const
{
return gTags;
}

ECode DbPutTask::operator()()
{
EHTest(db::gDatabase->put(key()->toString(), value()->bytes()));
Expand Down
6 changes: 1 addition & 5 deletions src/task/db/db_put_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,7 @@ class DbPutTask : public Element<DbPutTask, doim::DbKeySPtr>
return mValue;
}

doim::TagSet tags() const override
{
return doim::TagSet{doim::gTaskTag, doim::gDbTag};
}

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;

Expand Down
9 changes: 3 additions & 6 deletions src/task/element.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,7 @@ class Element : public enable_make_shared<T>, public tpool::Task, public rtti::R

virtual string description() const = 0;

virtual doim::TagSet tags() const
{
return doim::TagSet{doim::gTaskTag};
}
virtual doim::TagSetSPtr tags() const = 0;

shared_ptr<T> rerun()
{
Expand All @@ -68,7 +65,7 @@ class Element : public enable_make_shared<T>, public tpool::Task, public rtti::R

void onStart() const override
{
doim::TagSetSPtr runTags = doim::TagSet::make(tags());
doim::TagSetSPtr runTags = doim::TagSet::make(*tags());
runTags->insert(doim::gRunTag);
runTags = doim::TagSet::unique(runTags);

Expand All @@ -78,7 +75,7 @@ class Element : public enable_make_shared<T>, public tpool::Task, public rtti::R

void onFinish(ECode code) const override
{
doim::TagSetSPtr doneTags = doim::TagSet::make(tags());
doim::TagSetSPtr doneTags = doim::TagSet::make(*tags());
doneTags->insert(doim::gDoneTag);
doneTags = doim::TagSet::unique(doneTags);

Expand Down
8 changes: 8 additions & 0 deletions src/task/protobuf/protobuf_file_crc_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@ bool ProtobufFileCrcTask::check() const
return protobufFile() != nullptr && protobufFile()->isUnique();
}

static doim::TagSetSPtr gTags =
doim::TagSet::global({&doim::gCrcTag, &doim::gProtobufTag}, gTags);

doim::TagSetSPtr ProtobufFileCrcTask::tags() const
{
return gTags;
}

ECode ProtobufFileCrcTask::operator()()
{
std::ifstream fstream(protobufFile()->file()->path().c_str());
Expand Down
6 changes: 1 addition & 5 deletions src/task/protobuf/protobuf_file_crc_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,7 @@ class ProtobufFileCrcTask : public CrcTask<ProtobufFileCrcTask, doim::ProtobufFi
return std::get<0>(mArgs);
}

doim::TagSet tags() const override
{
return doim::TagSet{doim::gTaskTag, doim::gCrcTag};
}

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;
};
Expand Down
7 changes: 7 additions & 0 deletions src/task/sys/ensure_directory_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ bool EnsureDirectoryTask::check() const
return directory() != nullptr && directory()->isUnique();
}

static doim::TagSetSPtr gTags = doim::TagSet::global({&doim::gSysTag}, gTags);

doim::TagSetSPtr EnsureDirectoryTask::tags() const
{
return gTags;
}

ECode EnsureDirectoryTask::operator()()
{
if (directory()->parent() != nullptr)
Expand Down
1 change: 1 addition & 0 deletions src/task/sys/ensure_directory_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class EnsureDirectoryTask : public Element<EnsureDirectoryTask, doim::FsDirector
return std::get<0>(mArgs);
}

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;
};
Expand Down
7 changes: 7 additions & 0 deletions src/task/sys/execute_command_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ bool ExecuteCommandTask::check() const
targetDirectory() != nullptr && targetDirectory()->isUnique();
}

static doim::TagSetSPtr gTags = doim::TagSet::global({&doim::gSysTag}, gTags);

doim::TagSetSPtr ExecuteCommandTask::tags() const
{
return gTags;
}

ECode ExecuteCommandTask::operator()()
{
if (targetDirectory() != nullptr)
Expand Down
6 changes: 1 addition & 5 deletions src/task/sys/execute_command_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,10 @@ class ExecuteCommandTask
return std::get<1>(mArgs);
}

doim::TagSet tags() const override
{
return doim::TagSet{doim::gTaskTag, doim::gSysTag};
}

int exit() const;
ECode stdoutput(string& stdoutput) const;

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;

Expand Down
7 changes: 7 additions & 0 deletions src/task/sys/parse_stdout_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@ bool ParseStdoutTask::check() const
targetDirectory() != nullptr && targetDirectory()->isUnique();
}

static doim::TagSetSPtr gTags = doim::TagSet::global({}, gTags);

doim::TagSetSPtr ParseStdoutTask::tags() const
{
return gTags;
}

ECode ParseStdoutTask::operator()()
{
auto executeTask = task::ExecuteCommandTask::valid(command(), targetDirectory());
Expand Down
1 change: 1 addition & 0 deletions src/task/sys/parse_stdout_task.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class ParseStdoutTask : public Element<ParseStdoutTask,
return std::get<1>(mArgs);
}

doim::TagSetSPtr tags() const override;
ECode operator()() override;
string description() const override;

Expand Down

0 comments on commit e4e7783

Please sign in to comment.