2 * Copyright (C) 2015-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
9 #include "ILanguageInvoker.h"
11 #include "interfaces/generic/ILanguageInvocationHandler.h"
16 ILanguageInvoker::ILanguageInvoker(ILanguageInvocationHandler
*invocationHandler
)
18 m_state(InvokerStateUninitialized
),
19 m_invocationHandler(invocationHandler
)
22 ILanguageInvoker::~ILanguageInvoker() = default;
24 bool ILanguageInvoker::Execute(const std::string
&script
, const std::vector
<std::string
> &arguments
/* = std::vector<std::string>() */)
26 if (m_invocationHandler
)
27 m_invocationHandler
->OnScriptStarted(this);
29 return execute(script
, arguments
);
32 bool ILanguageInvoker::Stop(bool abort
/* = false */)
37 bool ILanguageInvoker::IsActive() const
39 return GetState() > InvokerStateUninitialized
&& GetState() < InvokerStateScriptDone
;
42 bool ILanguageInvoker::IsRunning() const
44 return GetState() == InvokerStateRunning
;
47 bool ILanguageInvoker::IsStopping() const
49 return GetState() == InvokerStateStopping
;
52 void ILanguageInvoker::pulseGlobalEvent()
54 if (m_invocationHandler
)
55 m_invocationHandler
->PulseGlobalEvent();
58 bool ILanguageInvoker::onExecutionInitialized()
60 if (m_invocationHandler
== NULL
)
63 return m_invocationHandler
->OnScriptInitialized(this);
66 void ILanguageInvoker::AbortNotification()
68 if (m_invocationHandler
)
69 m_invocationHandler
->NotifyScriptAborting(this);
72 void ILanguageInvoker::onExecutionFailed()
74 if (m_invocationHandler
)
75 m_invocationHandler
->OnExecutionEnded(this);
78 void ILanguageInvoker::onExecutionDone()
80 if (m_invocationHandler
)
81 m_invocationHandler
->OnExecutionEnded(this);
84 void ILanguageInvoker::onExecutionFinalized()
86 if (m_invocationHandler
)
87 m_invocationHandler
->OnScriptFinalized(this);
90 void ILanguageInvoker::setState(InvokerState state
)