Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 /// <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);
 }
Ejemplo n.º 4
0
 /// <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);
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }