Warrior_EA/Expert/ConfigLock/AIBaseConfigLockViewImpl.mqh
AnimateDread e366bb74ad refactor(config-lock): CConfigLock is a real collaborator, not a raw-include partial
AcquireConfigLock/ReleaseConfigLock moved off CExpertSignalAIBase into
Expert/ConfigLock/CConfigLock, same view+adapter shape as BarrierHorizon/ExcursionHead.
Stateful: m_configLockName is exclusive (grep-verified, nothing outside Lifecycle.mqh's
old body touched it). Pure relocation - same FNV-1a hash, same owner-liveness check,
same log wording. Left uncommitted mid-campaign; independently compile-verified in
isolation now (0 errors/0 warnings) before this commit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-24 04:39:17 -04:00

18 lines
1.2 KiB
MQL5

//+------------------------------------------------------------------+
//| Warrior_EA |
//| AnimateDread |
//| |
//| CAIBaseConfigLockView bodies - needs the full signal declaration. |
//| Same doctrine as BarrierHorizon\AIBaseBarrierHorizonViewImpl.mqh -|
//| every method is a forward, borrowed pointer checked on every call.|
//+------------------------------------------------------------------+
#ifndef WARRIOR_CONFIGLOCK_AIBASECONFIGLOCKVIEWIMPL_MQH
#define WARRIOR_CONFIGLOCK_AIBASECONFIGLOCKVIEWIMPL_MQH
string CAIBaseConfigLockView::Id(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataId() : ""; }
string CAIBaseConfigLockView::ActiveFileName(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineActiveFileName() : ""; }
string CAIBaseConfigLockView::ShortId(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ConfigLockShortId() : ""; }
#endif // WARRIOR_CONFIGLOCK_AIBASECONFIGLOCKVIEWIMPL_MQH
//+------------------------------------------------------------------+