public void SetUp() { _container = SupportContainer.Reset(); var rLock = _container.LockManager().CreateLock(GetType()); _list = new VersionedValueList <String>("abc", 2, "a", 1000, 10000, rLock, 10, true); }
public VariableReader(VariableMetaData variableMetaData, VariableVersionThreadLocal versionThreadLocal, VersionedValueList <Object> versionsLow) { _variableMetaData = variableMetaData; _versionThreadLocal = versionThreadLocal; _versionsLow = versionsLow; _versionsHigh = null; }
public void AllocateVariableState(String variableName, int agentInstanceId, StatementExtensionSvcContext extensionServicesContext) { var metaData = _variables.Get(variableName); if (metaData == null) { throw new ArgumentException("Failed to find variable '" + variableName + "'"); } // Check current state - see if the variable exists in the state handler var initialState = metaData.VariableStateFactory.InitialState; if (_optionalStateHandler != null) { var priorValue = _optionalStateHandler.GetHasState( variableName, metaData.VariableNumber, agentInstanceId, metaData.VariableType, metaData.EventType, extensionServicesContext); if (priorValue.First) { initialState = priorValue.Second; } } // create new holder for versions var timestamp = _timeProvider.Time; var valuePerVersion = new VersionedValueList <Object>(variableName, _currentVersionNumber, initialState, timestamp, _millisecondLifetimeOldVersions, _readWriteLock.ReadLock, HIGH_WATERMARK_VERSIONS, false); var cps = _variableVersionsPerCP[metaData.VariableNumber]; var reader = new VariableReader(metaData, _versionThreadLocal, valuePerVersion); cps.Put(agentInstanceId, reader); }
/// <summary> /// Rollover includes creating a new /// </summary> private void RollOver() { foreach (var entryCP in _variableVersionsPerCP) { foreach (KeyValuePair <int, VariableReader> entry in entryCP) { String name = entry.Value.VariableMetaData.VariableName; var timestamp = _timeProvider.Time; // Construct a new collection, forgetting the history var versionsOld = entry.Value.VersionsLow; var currentValue = versionsOld.CurrentAndPriorValue.CurrentVersion.Value; var versionsNew = new VersionedValueList <Object>(name, 1, currentValue, timestamp, _millisecondLifetimeOldVersions, _readWriteLock.ReadLock, HIGH_WATERMARK_VERSIONS, false); // Tell the reader to use the high collection for old requests entry.Value.VersionsHigh = versionsOld; entry.Value.VersionsLow = versionsNew; } } }
public void SetUp() { var rLock = LockManager.CreateLock(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); list = new VersionedValueList <String>("abc", 2, "a", 1000, 10000, rLock, 10, true); }