public void TestIgniteGuid()
        {
            var guid = Guid.NewGuid();

            var id1 = new IgniteGuid(guid, 1);
            var id2 = new IgniteGuid(guid, 1);
            var id3 = new IgniteGuid(guid, 2);
            var id4 = new IgniteGuid(Guid.NewGuid(), 2);

            // Properties.
            Assert.AreEqual(guid, id1.GlobalId);
            Assert.AreEqual(1, id1.LocalId);
            Assert.AreEqual(id1.GetHashCode(), id2.GetHashCode());

            // Equality.
            Assert.AreEqual(id1, id2);
            Assert.IsTrue(id1 == id2);
            Assert.IsFalse(id1 != id2);

            // Inequality.
            Assert.AreNotEqual(id1, id3);
            Assert.IsFalse(id1 == id3);
            Assert.IsTrue(id1 != id3);

            Assert.AreNotEqual(id4, id3);
            Assert.IsFalse(id4 == id3);
            Assert.IsTrue(id4 != id3);
        }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="r">The reader to read data from.</param>
 internal TaskEvent(IPortableRawReader r) : base(r)
 {
     _taskName = r.ReadString();
     _taskClassName = r.ReadString();
     _taskSessionId = IgniteGuid.ReadPortable(r);
     _internal = r.ReadBoolean();
     _subjectId = r.ReadGuid() ?? Guid.Empty;
 }
Beispiel #3
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="r">The reader to read data from.</param>
 internal TaskEvent(IBinaryRawReader r) : base(r)
 {
     _taskName      = r.ReadString();
     _taskClassName = r.ReadString();
     _taskSessionId = IgniteGuid.Read(r);
     _internal      = r.ReadBoolean();
     _subjectId     = r.ReadGuid();
 }
Beispiel #4
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="r">The reader to read data from.</param>
 internal TaskEvent(IPortableRawReader r) : base(r)
 {
     _taskName      = r.ReadString();
     _taskClassName = r.ReadString();
     _taskSessionId = IgniteGuid.ReadPortable(r);
     _internal      = r.ReadBoolean();
     _subjectId     = r.ReadGuid() ?? Guid.Empty;
 }
Beispiel #5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="r">The reader to read data from.</param>
 internal JobEvent(IPortableRawReader r) : base(r)
 {
     _taskName = r.ReadString();
     _taskClassName = r.ReadString();
     _taskSessionId = IgniteGuid.ReadPortable(r);
     _jobId = IgniteGuid.ReadPortable(r);
     _taskNode = ReadNode(r);
     _taskSubjectId = r.ReadGuid() ?? Guid.Empty;
 }
Beispiel #6
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="r">The reader to read data from.</param>
 internal JobEvent(IBinaryRawReader r) : base(r)
 {
     _taskName      = r.ReadString();
     _taskClassName = r.ReadString();
     _taskSessionId = IgniteGuid.Read(r);
     _jobId         = IgniteGuid.Read(r);
     _taskNode      = ReadNode(r);
     _taskSubjectId = r.ReadGuid();
 }
Beispiel #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EventBase"/> class.
        /// </summary>
        /// <param name="r">The reader to read data from.</param>
        protected EventBase(IPortableRawReader r)
        {
            _id = IgniteGuid.ReadPortable(r);

            _localOrder = r.ReadLong();

            _node = ReadNode(r);

            _message   = r.ReadString();
            _type      = r.ReadInt();
            _name      = r.ReadString();
            _timeStamp = r.ReadDate() ?? DateTime.Now;
        }
Beispiel #8
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="r">The reader to read data from.</param>
 internal CacheEvent(IBinaryRawReader r) : base(r)
 {
     _cacheName        = r.ReadString();
     _partition        = r.ReadInt();
     _isNear           = r.ReadBoolean();
     _eventNode        = ReadNode(r);
     _key              = r.ReadObject <object>();
     _xid              = IgniteGuid.Read(r);
     _newValue         = r.ReadObject <object>();
     _oldValue         = r.ReadObject <object>();
     _hasOldValue      = r.ReadBoolean();
     _hasNewValue      = r.ReadBoolean();
     _subjectId        = r.ReadGuid();
     _closureClassName = r.ReadString();
     _taskName         = r.ReadString();
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="r">The reader to read data from.</param>
 internal CacheEvent(IPortableRawReader r) : base(r)
 {
     _cacheName = r.ReadString();
     _partition = r.ReadInt();
     _isNear = r.ReadBoolean();
     _eventNode = ReadNode(r);
     _key = r.ReadObject<object>();
     _xid = IgniteGuid.ReadPortable(r);
     _lockId = r.ReadObject<object>();
     _newValue = r.ReadObject<object>();
     _oldValue = r.ReadObject<object>();
     _hasOldValue = r.ReadBoolean();
     _hasNewValue = r.ReadBoolean();
     _subjectId = r.ReadGuid() ?? Guid.Empty;
     _closureClassName = r.ReadString();
     _taskName = r.ReadString();
 }
Beispiel #10
0
        protected EventBase(IBinaryRawReader r)
        {
            Debug.Assert(r != null);

            _id = r.ReadObject <IgniteGuid>();

            _localOrder = r.ReadLong();

            _node = ReadNode(r);

            _message = r.ReadString();
            _type    = r.ReadInt();
            _name    = r.ReadString();

            var timestamp = r.ReadTimestamp();

            Debug.Assert(timestamp.HasValue);
            _timestamp = timestamp.Value;
        }
Beispiel #11
0
        public void TestSerialization()
        {
            var grid    = (Ignite)_grid1;
            var comp    = (ImplCompute)grid.GetCluster().ForLocal().GetCompute();
            var locNode = grid.GetCluster().GetLocalNode();

            var expectedGuid     = Guid.Parse("00000000-0000-0001-0000-000000000002");
            var expectedGridGuid = new IgniteGuid(expectedGuid, 3);

            using (var inStream = IgniteManager.Memory.Allocate().GetStream())
            {
                var result = comp.ExecuteJavaTask <bool>("org.apache.ignite.platform.PlatformEventsWriteEventTask",
                                                         inStream.MemoryPointer);

                Assert.IsTrue(result);

                inStream.SynchronizeInput();

                var reader = grid.Marshaller.StartUnmarshal(inStream);

                var cacheEvent = EventReader.Read <CacheEvent>(reader);
                CheckEventBase(cacheEvent);
                Assert.AreEqual("cacheName", cacheEvent.CacheName);
                Assert.AreEqual(locNode, cacheEvent.EventNode);
                Assert.AreEqual(1, cacheEvent.Partition);
                Assert.AreEqual(true, cacheEvent.IsNear);
                Assert.AreEqual(2, cacheEvent.Key);
                Assert.AreEqual(expectedGridGuid, cacheEvent.Xid);
                Assert.AreEqual(4, cacheEvent.NewValue);
                Assert.AreEqual(true, cacheEvent.HasNewValue);
                Assert.AreEqual(5, cacheEvent.OldValue);
                Assert.AreEqual(true, cacheEvent.HasOldValue);
                Assert.AreEqual(expectedGuid, cacheEvent.SubjectId);
                Assert.AreEqual("cloClsName", cacheEvent.ClosureClassName);
                Assert.AreEqual("taskName", cacheEvent.TaskName);
                Assert.IsTrue(cacheEvent.ToShortString().StartsWith("NODE_FAILED: IsNear="));

                var qryExecEvent = EventReader.Read <CacheQueryExecutedEvent>(reader);
                CheckEventBase(qryExecEvent);
                Assert.AreEqual("qryType", qryExecEvent.QueryType);
                Assert.AreEqual("cacheName", qryExecEvent.CacheName);
                Assert.AreEqual("clsName", qryExecEvent.ClassName);
                Assert.AreEqual("clause", qryExecEvent.Clause);
                Assert.AreEqual(expectedGuid, qryExecEvent.SubjectId);
                Assert.AreEqual("taskName", qryExecEvent.TaskName);
                Assert.AreEqual(
                    "NODE_FAILED: QueryType=qryType, CacheName=cacheName, ClassName=clsName, Clause=clause, " +
                    "SubjectId=00000000-0000-0001-0000-000000000002, TaskName=taskName", qryExecEvent.ToShortString());

                var qryReadEvent = EventReader.Read <CacheQueryReadEvent>(reader);
                CheckEventBase(qryReadEvent);
                Assert.AreEqual("qryType", qryReadEvent.QueryType);
                Assert.AreEqual("cacheName", qryReadEvent.CacheName);
                Assert.AreEqual("clsName", qryReadEvent.ClassName);
                Assert.AreEqual("clause", qryReadEvent.Clause);
                Assert.AreEqual(expectedGuid, qryReadEvent.SubjectId);
                Assert.AreEqual("taskName", qryReadEvent.TaskName);
                Assert.AreEqual(1, qryReadEvent.Key);
                Assert.AreEqual(2, qryReadEvent.Value);
                Assert.AreEqual(3, qryReadEvent.OldValue);
                Assert.AreEqual(4, qryReadEvent.Row);
                Assert.AreEqual(
                    "NODE_FAILED: QueryType=qryType, CacheName=cacheName, ClassName=clsName, Clause=clause, " +
                    "SubjectId=00000000-0000-0001-0000-000000000002, TaskName=taskName, Key=1, Value=2, " +
                    "OldValue=3, Row=4", qryReadEvent.ToShortString());

                var cacheRebalancingEvent = EventReader.Read <CacheRebalancingEvent>(reader);
                CheckEventBase(cacheRebalancingEvent);
                Assert.AreEqual("cacheName", cacheRebalancingEvent.CacheName);
                Assert.AreEqual(1, cacheRebalancingEvent.Partition);
                Assert.AreEqual(locNode, cacheRebalancingEvent.DiscoveryNode);
                Assert.AreEqual(2, cacheRebalancingEvent.DiscoveryEventType);
                Assert.AreEqual(3, cacheRebalancingEvent.DiscoveryTimestamp);
                Assert.IsTrue(cacheRebalancingEvent.ToShortString().StartsWith(
                                  "NODE_FAILED: CacheName=cacheName, Partition=1, DiscoveryNode=GridNode"));

                var checkpointEvent = EventReader.Read <CheckpointEvent>(reader);
                CheckEventBase(checkpointEvent);
                Assert.AreEqual("cpKey", checkpointEvent.Key);
                Assert.AreEqual("NODE_FAILED: Key=cpKey", checkpointEvent.ToShortString());

                var discoEvent = EventReader.Read <DiscoveryEvent>(reader);
                CheckEventBase(discoEvent);
                Assert.AreEqual(grid.TopologyVersion, discoEvent.TopologyVersion);
                Assert.AreEqual(grid.GetNodes(), discoEvent.TopologyNodes);
                Assert.IsTrue(discoEvent.ToShortString().StartsWith("NODE_FAILED: EventNode=GridNode"));

                var jobEvent = EventReader.Read <JobEvent>(reader);
                CheckEventBase(jobEvent);
                Assert.AreEqual(expectedGridGuid, jobEvent.JobId);
                Assert.AreEqual("taskClsName", jobEvent.TaskClassName);
                Assert.AreEqual("taskName", jobEvent.TaskName);
                Assert.AreEqual(locNode, jobEvent.TaskNode);
                Assert.AreEqual(expectedGridGuid, jobEvent.TaskSessionId);
                Assert.AreEqual(expectedGuid, jobEvent.TaskSubjectId);
                Assert.IsTrue(jobEvent.ToShortString().StartsWith("NODE_FAILED: TaskName=taskName"));

                var taskEvent = EventReader.Read <TaskEvent>(reader);
                CheckEventBase(taskEvent);
                Assert.AreEqual(true, taskEvent.Internal);
                Assert.AreEqual(expectedGuid, taskEvent.SubjectId);
                Assert.AreEqual("taskClsName", taskEvent.TaskClassName);
                Assert.AreEqual("taskName", taskEvent.TaskName);
                Assert.AreEqual(expectedGridGuid, taskEvent.TaskSessionId);
                Assert.IsTrue(taskEvent.ToShortString().StartsWith("NODE_FAILED: TaskName=taskName"));
            }
        }