1 // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
3 // #SchematycTODO : Do we need to replace stack_string with CharArrayView?
7 #include "CrySchematyc2/IDomainContext.h"
13 struct SDomainContextScope
15 inline SDomainContextScope(const IScriptFile
* _pScriptFile
= nullptr, const Schematyc2::SGUID
& _guid
= Schematyc2::SGUID())
16 : pScriptFile(_pScriptFile
)
20 const IScriptFile
* pScriptFile
;
21 Schematyc2::SGUID guid
;
26 virtual ~IDomainContext() {}
28 virtual const SDomainContextScope
& GetScope() const = 0;
29 virtual Schematyc2::IFoundationConstPtr
GetEnvFoundation() const = 0;
30 virtual const Schematyc2::IScriptClass
* GetScriptClass() const = 0;
32 // #SchematycTODO : Do we need concept of all or usable for env elements?
34 virtual void VisitEnvFunctions(const Schematyc2::EnvFunctionVisitor
& visitor
) const = 0;
35 virtual void VisitEnvGlobalFunctions(const Schematyc2::EnvGlobalFunctionVisitor
& visitor
) const = 0;
36 virtual void VisitEnvAbstractInterfaces(const Schematyc2::EnvAbstractInterfaceVisitor
& visitor
) const = 0;
37 virtual void VisitEnvComponentFactories(const Schematyc2::EnvComponentFactoryVisitor
& visitor
) const = 0;
38 virtual void VisitEnvComponentMemberFunctions(const Schematyc2::EnvComponentMemberFunctionVisitor
& visitor
) const = 0;
39 virtual void VisitEnvActionMemberFunctions(const Schematyc2::EnvActionMemberFunctionVisitor
& visitor
) const = 0;
41 virtual void VisitScriptEnumerations(const Schematyc2::ScriptEnumerationConstVisitor
& visitor
, Schematyc2::EDomainScope scope
) const = 0;
42 virtual void VisitScriptStates(const Schematyc2::ScriptStateConstVisitor
& visitor
, Schematyc2::EDomainScope scope
) const = 0;
43 virtual void VisitScriptStateMachines(const Schematyc2::ScriptStateMachineConstVisitor
& visitor
, Schematyc2::EDomainScope scope
) const = 0;
44 virtual void VisitScriptVariables(const Schematyc2::ScriptVariableConstVisitor
& visitor
, Schematyc2::EDomainScope scope
) const = 0;
45 virtual void VisitScriptProperties(const Schematyc2::ScriptPropertyConstVisitor
& visitor
, Schematyc2::EDomainScope scope
) const = 0;
46 virtual void VisitScriptComponentInstances(const Schematyc2::ScriptComponentInstanceConstVisitor
& visitor
, Schematyc2::EDomainScope scope
) const = 0;
47 virtual void VisitScriptActionInstances(const Schematyc2::ScriptActionInstanceConstVisitor
& visitor
, Schematyc2::EDomainScope scope
) const = 0;
48 virtual void VisitDocGraphs(const Schematyc2::DocGraphConstVisitor
& visitor
, Schematyc2::EDomainScope scope
) const = 0;
50 virtual const Schematyc2::IScriptStateMachine
* GetScriptStateMachine(const Schematyc2::SGUID
& guid
) const = 0;
51 virtual const Schematyc2::IScriptComponentInstance
* GetScriptComponentInstance(const Schematyc2::SGUID
& guid
) const = 0;
52 virtual const Schematyc2::IScriptActionInstance
* GetScriptActionInstance(const Schematyc2::SGUID
& guid
) const = 0;
53 virtual const Schematyc2::IDocGraph
* GetDocGraph(const Schematyc2::SGUID
& guid
) const = 0;
55 virtual bool QualifyName(const Schematyc2::IGlobalFunction
& envGlobalFunction
, stack_string
& output
) const = 0;
56 virtual bool QualifyName(const Schematyc2::IScriptComponentInstance
& scriptComponentInstance
, const Schematyc2::IEnvFunctionDescriptor
& envFunctionDescriptor
, Schematyc2::EDomainQualifier qualifier
, stack_string
& output
) const = 0;
57 virtual bool QualifyName(const Schematyc2::IAbstractInterface
& envAbstractInterface
, stack_string
& output
) const = 0;
58 virtual bool QualifyName(const Schematyc2::IAbstractInterfaceFunction
& envAbstractInterfaceFunction
, stack_string
& output
) const = 0;
59 virtual bool QualifyName(const Schematyc2::IComponentFactory
& envComponentFactory
, stack_string
& output
) const = 0;
60 virtual bool QualifyName(const Schematyc2::IScriptComponentInstance
& scriptComponentInstance
, const Schematyc2::IComponentMemberFunction
& envComponentMemberFunction
, Schematyc2::EDomainQualifier qualifier
, stack_string
& output
) const = 0;
61 virtual bool QualifyName(const Schematyc2::IScriptActionInstance
& scriptActionInstance
, const Schematyc2::IActionMemberFunction
& envActionMemberFunction
, Schematyc2::EDomainQualifier qualifier
, stack_string
& output
) const = 0;
62 virtual bool QualifyName(const Schematyc2::IScriptElement
& scriptElement
, Schematyc2::EDomainQualifier qualifier
, stack_string
& output
) const = 0;
65 DECLARE_SHARED_POINTERS(IDomainContext
)