Added: Seperated pipeline projects.

--HG--
branch : build_pipeline_v3
hg/feature/build_pipeline_v3
kaetemi 13 years ago
parent 725ca56387
commit 811b8e3736

@ -26,7 +26,7 @@
#include <vector> #include <vector>
#include <string> #include <string>
#include "../../pipeline/pipeline_service/tool_logger.h" #include "../../pipeline/pipeline_library/tool_logger.h"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------

@ -0,0 +1,55 @@
/**
* \file pipeline_plugin.cpp
* \brief IPipelinePlugin
* \date 2012-02-25 10:27GMT
* \author Jan Boon (Kaetemi)
* IPipelinePlugin
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE PIPELINE.
* RYZOM CORE PIPELINE is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* RYZOM CORE PIPELINE is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#include <nel/misc/types_nl.h>
#include "pipeline_plugin.h"
// STL includes
// NeL includes
// #include <nel/misc/debug.h>
// Project includes
using namespace std;
// using namespace NLMISC;
namespace PIPELINE {
IPipelinePlugin::IPipelinePlugin()
{
}
IPipelinePlugin::~IPipelinePlugin()
{
}
} /* namespace PIPELINE */
/* end of file */

@ -0,0 +1,63 @@
/**
* \file pipeline_plugin.h
* \brief IPipelinePlugin
* \date 2012-02-25 10:27GMT
* \author Jan Boon (Kaetemi)
* IPipelinePlugin
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE PIPELINE.
* RYZOM CORE PIPELINE is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* RYZOM CORE PIPELINE is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef PIPELINE_PIPELINE_PLUGIN_H
#define PIPELINE_PIPELINE_PLUGIN_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
// Project includes
namespace PIPELINE {
/**
* \brief IPipelinePlugin
* \date 2012-02-25 10:27GMT
* \author Jan Boon (Kaetemi)
* A pipeline plugin (dll) exposes multiple process plugins.
*/
class IPipelinePlugin
{
protected:
// pointers
// ...
// instances
// ...
public:
IPipelinePlugin();
virtual ~IPipelinePlugin();
}; /* class IPipelinePlugin */
} /* namespace PIPELINE */
#endif /* #ifndef PIPELINE_PIPELINE_PLUGIN_H */
/* end of file */

@ -0,0 +1,55 @@
/**
* \file process_plugin.cpp
* \brief IProcessPlugin
* \date 2012-02-25 10:19GMT
* \author Jan Boon (Kaetemi)
* IProcessPlugin
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE PIPELINE.
* RYZOM CORE PIPELINE is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* RYZOM CORE PIPELINE is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#include <nel/misc/types_nl.h>
#include "process_plugin.h"
// STL includes
// NeL includes
// #include <nel/misc/debug.h>
// Project includes
using namespace std;
// using namespace NLMISC;
namespace PIPELINE {
IProcessPlugin::IProcessPlugin()
{
}
IProcessPlugin::~IProcessPlugin()
{
}
} /* namespace PIPELINE */
/* end of file */

@ -0,0 +1,67 @@
/**
* \file process_plugin.h
* \brief IProcessPlugin
* \date 2012-02-25 10:19GMT
* \author Jan Boon (Kaetemi)
* IProcessPlugin
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE PIPELINE.
* RYZOM CORE PIPELINE is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* RYZOM CORE PIPELINE is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef PIPELINE_PROCESS_PLUGIN_H
#define PIPELINE_PROCESS_PLUGIN_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
// Project includes
namespace PIPELINE {
/**
* \brief IProcessPlugin
* \date 2012-02-25 10:19GMT
* \author Jan Boon (Kaetemi)
* /// REJECTED.A /// A process plugin handles process sheets with specified sheet extention.
* /// REJECTED.A /// If more than one process plugin handles a sheet extention, all of them will be run.
* A process sheet may define one or more process plugins to handle the process.
* The master service may dispatch these seperately to different slave services to executa a single process sheets using multiple process plugins.
* This enables creating seperate plugins for different file formats for the same process, to allow handling files from different modeling packages on different build servers.
*/
class IProcessPlugin
{
protected:
// pointers
// ...
// instances
// ...
public:
IProcessPlugin();
virtual ~IProcessPlugin();
}; /* class IProcessPlugin */
} /* namespace PIPELINE */
#endif /* #ifndef PIPELINE_PROCESS_PLUGIN_H */
/* end of file */

@ -40,6 +40,7 @@ using namespace std;
namespace PIPELINE { namespace PIPELINE {
// Tool logger is fully implemented in header so small tools do not need to link to this library unnecessarily.
void dummmmmmmyyyyyyyyyyyyyyyyy_tool_logger_cpp() { } void dummmmmmmyyyyyyyyyyyyyyyyy_tool_logger_cpp() { }
} /* namespace PIPELINE */ } /* namespace PIPELINE */

@ -3,7 +3,8 @@
* \brief CToolLogger * \brief CToolLogger
* \date 2012-02-19 10:33GMT * \date 2012-02-19 10:33GMT
* \author Jan Boon (Kaetemi) * \author Jan Boon (Kaetemi)
* CToolLogger * Tool logger is fully implemented in header so small tools do not
* need to link to this library unnecessarily.
*/ */
/* /*

@ -0,0 +1,55 @@
/**
* \file pipeline_plugin_max.cpp
* \brief CPipelinePluginMax
* \date 2012-02-25 10:39GMT
* \author Jan Boon (Kaetemi)
* CPipelinePluginMax
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE PIPELINE.
* RYZOM CORE PIPELINE is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* RYZOM CORE PIPELINE is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#include <nel/misc/types_nl.h>
#include "pipeline_plugin_max.h"
// STL includes
// NeL includes
// #include <nel/misc/debug.h>
// Project includes
using namespace std;
// using namespace NLMISC;
namespace PIPELINE {
CPipelinePluginMax::CPipelinePluginMax()
{
}
CPipelinePluginMax::~CPipelinePluginMax()
{
}
} /* namespace PIPELINE */
/* end of file */

@ -0,0 +1,63 @@
/**
* \file pipeline_plugin_max.h
* \brief CPipelinePluginMax
* \date 2012-02-25 10:39GMT
* \author Jan Boon (Kaetemi)
* Fabulous max!
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE PIPELINE.
* RYZOM CORE PIPELINE is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* RYZOM CORE PIPELINE is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef PIPELINE_PIPELINE_PLUGIN_MAX_H
#define PIPELINE_PIPELINE_PLUGIN_MAX_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
// Project includes
namespace PIPELINE {
/**
* \brief CPipelinePluginMax
* \date 2012-02-25 10:39GMT
* \author Jan Boon (Kaetemi)
* CPipelinePluginMax
*/
class CPipelinePluginMax
{
protected:
// pointers
// ...
// instances
// ...
public:
CPipelinePluginMax();
virtual ~CPipelinePluginMax();
}; /* class CPipelinePluginMax */
} /* namespace PIPELINE */
#endif /* #ifndef PIPELINE_PIPELINE_PLUGIN_MAX_H */
/* end of file */

@ -0,0 +1,55 @@
/**
* \file process_max_shape.cpp
* \brief CProcessMaxShape
* \date 2012-02-25 10:45GMT
* \author Jan Boon (Kaetemi)
* CProcessMaxShape
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE PIPELINE.
* RYZOM CORE PIPELINE is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* RYZOM CORE PIPELINE is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#include <nel/misc/types_nl.h>
#include "process_max_shape.h"
// STL includes
// NeL includes
// #include <nel/misc/debug.h>
// Project includes
using namespace std;
// using namespace NLMISC;
namespace PIPELINE {
CProcessMaxShape::CProcessMaxShape()
{
}
CProcessMaxShape::~CProcessMaxShape()
{
}
} /* namespace PIPELINE */
/* end of file */

@ -0,0 +1,63 @@
/**
* \file process_max_shape.h
* \brief CProcessMaxShape
* \date 2012-02-25 10:45GMT
* \author Jan Boon (Kaetemi)
* CProcessMaxShape
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE PIPELINE.
* RYZOM CORE PIPELINE is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* RYZOM CORE PIPELINE is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef PIPELINE_PROCESS_MAX_SHAPE_H
#define PIPELINE_PROCESS_MAX_SHAPE_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
// Project includes
namespace PIPELINE {
/**
* \brief CProcessMaxShape
* \date 2012-02-25 10:45GMT
* \author Jan Boon (Kaetemi)
* CProcessMaxShape
*/
class CProcessMaxShape
{
protected:
// pointers
// ...
// instances
// ...
public:
CProcessMaxShape();
virtual ~CProcessMaxShape();
}; /* class CProcessMaxShape */
} /* namespace PIPELINE */
#endif /* #ifndef PIPELINE_PROCESS_MAX_SHAPE_H */
/* end of file */

@ -251,18 +251,17 @@ public:
IRunnable *CDatabaseStatus::updateFileStatus(const TFileStatusCallback &callback, const std::string &filePath) IRunnable *CDatabaseStatus::updateFileStatus(const TFileStatusCallback &callback, const std::string &filePath)
{ {
if (!g_IsMaster) #if defined(PIPELINE_MASTER)
{
nlerror("Not master, not allowed.");
return NULL;
}
CUpdateFileStatus *ufs = new CUpdateFileStatus(); CUpdateFileStatus *ufs = new CUpdateFileStatus();
ufs->StatusMutex = &m_StatusMutex; ufs->StatusMutex = &m_StatusMutex;
ufs->FilePath = unMacroPath(filePath); ufs->FilePath = unMacroPath(filePath);
ufs->Callback = callback; ufs->Callback = callback;
CAsyncFileManager::getInstance().addLoadTask(ufs); CAsyncFileManager::getInstance().addLoadTask(ufs);
return ufs; return ufs;
#else
nlerror("Not master, not allowed.");
return NULL;
#endif
} }
// ****************************************************************** // ******************************************************************

@ -83,7 +83,11 @@ std::string macroPath(const std::string &path)
namespace { namespace {
#define PIPELINE_LONG_SERVICE_NAME "pipeline_service" #define PIPELINE_LONG_SERVICE_NAME "pipeline_service"
#define PIPELINE_SHORT_SERVICE_NAME "PLS" #ifdef PIPELINE_MASTER
#define PIPELINE_SHORT_SERVICE_NAME "PLSM"
#else
#define PIPELINE_SHORT_SERVICE_NAME "PLSS"
#endif
/// Enum /// Enum
enum EState enum EState

@ -38,7 +38,15 @@
namespace PIPELINE { namespace PIPELINE {
extern bool g_IsMaster; #if defined(PIPELINE_MASTER)
# if defined(PIPELINE_SLAVE)
# error Cannot define both PIPELINE_MASTER and PIPELINE_SLAVE at the same time.
# endif
#elif defined (PIPELINE_SLAVE)
#else
# error Must define either PIPELINE_MASTER or PIPELINE_SLAVE. Create 2 projects that output pipeline_service_master and pipeline_service_slave executables.
#endif
extern std::string g_DatabaseDirectory; extern std::string g_DatabaseDirectory;
extern std::string g_PipelineDirectory; extern std::string g_PipelineDirectory;

Loading…
Cancel
Save