11 typedef std::function<
const CResult(Base::CFLBase*)> CSNAPCustomProcedure;
12 typedef std::function<
const CResult(CSNAPParameter*, Base::CFLBase*)> CSNAPCustomParameter;
14 #define MakeSNAPCustomProcedure [=](Base::CFLBase* pObject) -> const CResult
15 #define MakeSNAPCustomParameter [=](CSNAPParameter* pParameter, Base::CFLBase* pObject) -> const CResult
17 class FL_EXPORT CSNAPCustomProcessingManager :
public Base::CFLBase
20 CSNAPCustomProcessingManager();
23 typedef struct sCustomProcessingParameterInfo
25 sCustomProcessingParameterInfo(
const Base::CFLString<wchar_t>& strNodeName,
const Base::CFLString<wchar_t>& strParameterName,
const Base::CFLString<wchar_t>& strParameterType, CSNAPCustomParameter scparamParameter,
const Base::CFLBase* pObject);
27 Base::CFLString<wchar_t> strNodeName;
28 Base::CFLString<wchar_t> strParameterName;
29 Base::CFLString<wchar_t> strParameterType;
30 CSNAPCustomParameter scparamParameter;
32 const Base::CFLBase* pObject;
34 SCustomProcessingParameterInfo;
36 typedef struct sCustomProcessingProcedureInfo
38 sCustomProcessingProcedureInfo(
const Base::CFLString<wchar_t>& strNodeName, CSNAPCustomProcedure scprocProcedure,
const Base::CFLBase* pObject);
40 Base::CFLString<wchar_t> strNodeName;
41 CSNAPCustomProcedure scprocProcedure;
43 const Base::CFLBase* pObject;
45 SCustomProcessingProcedureInfo;
48 virtual ~CSNAPCustomProcessingManager();
50 static const CResult AddInputParameter(
const Base::CFLString<wchar_t>& strNodeName,
const Base::CFLString<wchar_t>& strParameterName,
const Base::CFLString<wchar_t>& strParameterType, CSNAPCustomParameter scparamParameter,
const Base::CFLBase* pObject);
51 static const CResult AddOutputParameter(
const Base::CFLString<wchar_t>& strNodeName,
const Base::CFLString<wchar_t>& strParameterName,
const Base::CFLString<wchar_t>& strParameterType, CSNAPCustomParameter scparamParameter,
const Base::CFLBase* pObject);
52 static const CResult AddProcedure(
const Base::CFLString<wchar_t>& strNodeName, CSNAPCustomProcedure scprocProcedure,
const Base::CFLBase* pObject);
55 static const CResult GetInputParameters(
const Base::CFLString<wchar_t>& strNodeName, std::vector<SCustomProcessingParameterInfo>& vctResult);
56 static const CResult GetOutputParameters(
const Base::CFLString<wchar_t>& strNodeName, std::vector<SCustomProcessingParameterInfo>& vctResult);
57 static const CResult GetProcedures(
const Base::CFLString<wchar_t>& strNodeName, std::vector<SCustomProcessingProcedureInfo>& vctResult);
58 static const CResult GetProcedures(
const Base::CFLString<wchar_t>& strNodeName,
const Base::CFLBase* pObject, std::vector<SCustomProcessingProcedureInfo>& vctResult);
60 static const CResult RemoveCustomProcess(
const Base::CFLBase* pObject);
63 DeclareGetClassType();
66 static const CResult Update();
69 static CSNAPCustomProcessingManager* GetInstance();
71 std::multimap<uint64_t, SCustomProcessingParameterInfo>& m_mmapCustomInputParameters;
72 std::multimap<uint64_t, SCustomProcessingParameterInfo>& m_mmapCustomOutputParameters;
73 std::multimap<uint64_t, SCustomProcessingProcedureInfo>& m_mmapCustomProcedures;