public void TestRollover() { _service = new VariableServiceImpl( VariableServiceImpl.ROLLOVER_READER_BOUNDARY - 100, 10000, new SchedulingServiceImpl(new TimeSourceServiceImpl()), SupportEventAdapterService.Service, null); String[] variables = "a,b,c,d".Split(','); var readers = new VariableReader[variables.Length]; for (int i = 0; i < variables.Length; i++) { _service.CreateNewVariable <long>(null, variables[i], false, 100L, null); _service.AllocateVariableState(variables[i], EPStatementStartMethodConst.DEFAULT_AGENT_INSTANCE_ID, null, false); readers[i] = _service.GetReader(variables[i], EPStatementStartMethodConst.DEFAULT_AGENT_INSTANCE_ID); } for (int i = 0; i < 1000; i++) { for (int j = 0; j < variables.Length; j++) { _service.Write(readers[j].VariableMetaData.VariableNumber, EPStatementStartMethodConst.DEFAULT_AGENT_INSTANCE_ID, 100L + i); _service.Commit(); } ReadCompare(variables, 100L + i); } }
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> /// Ctor. /// </summary> /// <param name="statementId">The statement id.</param> /// <param name="eventAdapterService">for creating events</param> /// <param name="variableService">for looking up variables</param> /// <param name="variableName">is the name of the variable to create</param> /// <param name="statementResultService">for coordinating on whether insert and remove stream events should be posted</param> /// <param name="agentInstanceId"></param> public CreateVariableView(int statementId, EventAdapterService eventAdapterService, VariableService variableService, string variableName, StatementResultService statementResultService, int agentInstanceId) { _eventAdapterService = eventAdapterService; _variableName = variableName; _statementResultService = statementResultService; _reader = variableService.GetReader(variableName, agentInstanceId); _eventType = GetEventType(statementId, eventAdapterService, _reader.VariableMetaData); }
/// <summary> /// Ctor. /// </summary> /// <param name="statementId">The statement id.</param> /// <param name="eventAdapterService">for creating events</param> /// <param name="variableService">for looking up variables</param> /// <param name="variableName">is the name of the variable to create</param> /// <param name="statementResultService">for coordinating on whether insert and remove stream events should be posted</param> public CreateVariableView(String statementId, EventAdapterService eventAdapterService, VariableService variableService, String variableName, StatementResultService statementResultService) { _eventAdapterService = eventAdapterService; _variableName = variableName; _statementResultService = statementResultService; _reader = variableService.GetReader(variableName, VariableServiceConstants.NOCONTEXT_AGENTINSTANCEID); _eventType = GetEventType(statementId, eventAdapterService, _reader.VariableMetaData); }
public void TestReadWrite() { Assert.IsNull(_service.GetReader("a", EPStatementStartMethodConst.DEFAULT_AGENT_INSTANCE_ID)); _service.CreateNewVariable <long>(null, "a", false, 100L, null); _service.AllocateVariableState("a", EPStatementStartMethodConst.DEFAULT_AGENT_INSTANCE_ID, null, false); VariableReader reader = _service.GetReader("a", EPStatementStartMethodConst.DEFAULT_AGENT_INSTANCE_ID); Assert.AreEqual(typeof(long?), reader.VariableMetaData.VariableType); Assert.AreEqual(100L, reader.Value); _service.Write(reader.VariableMetaData.VariableNumber, EPStatementStartMethodConst.DEFAULT_AGENT_INSTANCE_ID, 101L); _service.Commit(); Assert.AreEqual(100L, reader.Value); _service.SetLocalVersion(); Assert.AreEqual(101L, reader.Value); _service.Write(reader.VariableMetaData.VariableNumber, EPStatementStartMethodConst.DEFAULT_AGENT_INSTANCE_ID, 102L); _service.Commit(); Assert.AreEqual(101L, reader.Value); _service.SetLocalVersion(); Assert.AreEqual(102L, reader.Value); }
public void TestReadWrite() { Assert.IsNull(_service.GetReader("a", 0)); _service.CreateNewVariable <long>(null, "a", false, 100L, null); _service.AllocateVariableState("a", 0, null); VariableReader reader = _service.GetReader("a", 0); Assert.AreEqual(typeof(long?), reader.VariableMetaData.VariableType); Assert.AreEqual(100L, reader.Value); _service.Write(reader.VariableMetaData.VariableNumber, 0, 101L); _service.Commit(); Assert.AreEqual(100L, reader.Value); _service.SetLocalVersion(); Assert.AreEqual(101L, reader.Value); _service.Write(reader.VariableMetaData.VariableNumber, 0, 102L); _service.Commit(); Assert.AreEqual(101L, reader.Value); _service.SetLocalVersion(); Assert.AreEqual(102L, reader.Value); }