private RawMessage RawMessageFor(Id id, Name name, ApplicationMessage message) { var messageBuffer = new MemoryStream(4096); var says = ApplicationSays.From(id, name, message.ToPayload()); MessageConverters.MessageToBytes(says, messageBuffer); return(Converters.ToRawMessage(Id.Of(1).Value, messageBuffer)); }
private void Leader() { _buffer.Clear(); MessageConverters.MessageToBytes(_leader, _buffer); _buffer.Flip(); PrepareRawMessage(0, _buffer.Length); }
public void Application(ApplicationSays says, IEnumerable <Node> unconfirmedNodes) { var buffer = _outbound.PooledByteBuffer(); MessageConverters.MessageToBytes(says, buffer.AsStream()); var message = _node.Id.Value.ToRawMessage(buffer.AsStream()); _outbound.Broadcast(unconfirmedNodes, _outbound.BytesFrom(message, buffer)); }
public ClusterSnapshotActorTest(ITestOutputHelper output) : base(output) { _intializer = new ClusterSnapshotInitializer("node1", Properties, TestWorld.DefaultLogger); var messageBuffer = new MemoryStream(4096); var pulse = new Pulse(Id.Of(1)); MessageConverters.MessageToBytes(pulse, messageBuffer); _opMessage = Id.Of(1).Value.ToRawMessage(messageBuffer); }
public void TestGenerateSplitMessage() { var split = new Split(Id.Of(1)); MessageConverters.MessageToBytes(split, _messageBuffer); var raw = OperationalMessage.SPLIT + "\nid=1"; _expectedBuffer.Write(Converters.TextToBytes(raw)); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(split, Split.From(raw)); }
public void TestGenerateElectMessage() { var elect = new Elect(Id.Of(1)); MessageConverters.MessageToBytes(elect, _messageBuffer); var raw = OperationalMessage.ELECT + "\nid=1"; _expectedBuffer.Write(Converters.TextToBytes(raw)); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(elect, Elect.From(raw)); }
public void TestGeneratePingMessage() { var ping = new Ping(Id.Of(1)); MessageConverters.MessageToBytes(ping, _messageBuffer); var raw = OperationalMessage.PING + "\nid=1"; _expectedBuffer.Write(Converters.TextToBytes(raw)); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(ping, Ping.From(raw)); }
public void TestGeneratePulseMessage() { var pulse = new Pulse(Id.Of(1)); MessageConverters.MessageToBytes(pulse, _messageBuffer); var raw = OperationalMessage.PULSE + "\nid=1"; _expectedBuffer.Write(Converters.TextToBytes(raw)); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(pulse, Pulse.From(raw)); }
public void TestGenerateLeaveMessage() { var leave = new Leave(Id.Of(1)); MessageConverters.MessageToBytes(leave, _messageBuffer); var raw = OperationalMessage.LEAVE + "\nid=1"; _expectedBuffer.Write(Converters.TextToBytes(raw)); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(leave, Leave.From(raw)); }
public void Directory(IEnumerable <Node> allLiveNodes) { var dir = new Directory(_node.Id, _node.Name, allLiveNodes); var buffer = _outbound.PooledByteBuffer(); MessageConverters.MessageToBytes(dir, buffer.AsStream()); var message = _node.Id.Value.ToRawMessage(buffer.AsStream()); _outbound.Broadcast(_outbound.BytesFrom(message, buffer)); }
public void Split(Id targetNodeId, Id currentLeaderId) { var split = new Split(currentLeaderId); var buffer = _outbound.PooledByteBuffer(); MessageConverters.MessageToBytes(split, buffer.AsStream()); var message = _node.Id.Value.ToRawMessage(buffer.AsStream()); _outbound.SendTo(_outbound.BytesFrom(message, buffer), targetNodeId); }
public void TestGenerateVoteMessage() { var vote = new Vote(Id.Of(1)); MessageConverters.MessageToBytes(vote, _messageBuffer); var raw = OperationalMessage.VOTE + "\nid=1"; _expectedBuffer.Write(Converters.TextToBytes(raw)); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(vote, Vote.From(raw)); }
public void TestGenerateApplicationSaidMessage() { var id = Id.Of(1); var name = new Name("node1"); var payload = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sagittis risus quis nulla blandit, a euismod massa egestas. Vivamus facilisis."; var app = ApplicationSays.From(id, name, payload); var raw = $"{OperationalMessage.APP}\nid=1 nm=node1 si={app.SaysId}\n{payload}"; _expectedBuffer.Write(Converters.TextToBytes(raw)); MessageConverters.MessageToBytes(app, _messageBuffer); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(app, ApplicationSays.From(raw)); }
public void TestPut() { var buffer = new MemoryStream(1000); var node1 = Node.With(Id.Of(1), Name.Of("node1"), Host.Of("localhost"), 37371, 37372); var join = new Join(node1); MessageConverters.MessageToBytes(join, buffer); var message = new RawMessage(1000); message.Put(buffer); buffer.Position = 0; var textOfRawMessage = message.AsTextMessage(); var textOfConvertedBuffer = Converters.BytesToText(buffer.ToArray(), 0, (int)buffer.Length); Assert.Equal(textOfConvertedBuffer, textOfRawMessage); }
public void TestGenerateJoinMessge() { var join = new Join(new Node( Id.Of(1), new Name("node1"), Address.From("localhost:37371", AddressType.Op), Address.From("localhost:37372", AddressType.App))); MessageConverters.MessageToBytes(join, _messageBuffer); var raw = OperationalMessage.JOIN + "\n" + "id=1 nm=node1 op=localhost:37371 app=localhost:37372"; _expectedBuffer.Write(Converters.TextToBytes(raw)); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(join, Join.From(raw)); }
public void TestKnownSizeWithAppend() { var buffer = new MemoryStream(1000); var node1 = NextNodeWith(1); var join = new Join(node1); MessageConverters.MessageToBytes(join, buffer); buffer.Flip(); var messageSize = buffer.Length; var message = new RawMessage(messageSize); // known size message.Header(RawMessageHeader.From(node1.Id.Value, 0, messageSize)); message.Append(buffer.ToArray(), 0, messageSize); Assert.Equal(node1.Id.Value, message.Header().NodeId); Assert.Equal(messageSize, message.Header().Length); Assert.Equal(join, OperationalMessage.MessageFrom(message.AsTextMessage())); }
public void TestFromBytesWithLengthAndRequiredMessageLength() { var buffer = new MemoryStream(1000); var node1 = NextNodeWith(1); var join = new Join(node1); MessageConverters.MessageToBytes(join, buffer); buffer.Flip(); var messageSize = buffer.Length; var messageBytes = new byte[messageSize]; Array.Copy(buffer.ToArray(), 0, messageBytes, 0, messageSize); var message = new RawMessage(messageBytes); message.Header(RawMessageHeader.From(node1.Id.Value, 0, message.Length)); Assert.Equal(node1.Id.Value, message.Header().NodeId); Assert.Equal(message.Length, message.Header().Length); Assert.Equal(message.Length, message.RequiredMessageLength); Assert.Equal(join, OperationalMessage.MessageFrom(message.AsTextMessage())); }
public void TestCopyBytesTo() { var buffer = new MemoryStream(1000); var node1 = NextNodeWith(1); var join = new Join(node1); MessageConverters.MessageToBytes(join, buffer); buffer.Flip(); var messageSize = buffer.Length; var messageBytes = new byte[messageSize]; Array.Copy(buffer.ToArray(), 0, messageBytes, 0, messageSize); var message = new RawMessage(messageBytes); message.Header(RawMessageHeader.From(node1.Id.Value, 0, message.Length)); buffer.Clear(); message.CopyBytesTo(buffer); // copyBytesTo var text = buffer.ToArray().BytesToText(RawMessageHeader.Bytes, (int)message.Length); Assert.True(OperationalMessage.MessageFrom(text).IsJoin); }
public void TestGenerateDirectoryMessge() { var opAddresses = new [] { "", "localhost:37371", "localhost:37373", "localhost:37375" }; var appAddresses = new [] { "", "localhost:37372", "localhost:37374", "localhost:37376" }; var nodeEntries = new List <Node>(); nodeEntries.Add(new Node( Id.Of(1), new Name("node1"), Address.From(opAddresses[1], AddressType.Op), Address.From(appAddresses[1], AddressType.App))); nodeEntries.Add(new Node( Id.Of(2), new Name("node2"), Address.From(opAddresses[2], AddressType.Op), Address.From(appAddresses[2], AddressType.App))); nodeEntries.Add(new Node( Id.Of(3), new Name("node3"), Address.From(opAddresses[3], AddressType.Op), Address.From(appAddresses[3], AddressType.App))); var dir = new Directory(Id.Of(1), new Name("node1"), nodeEntries); MessageConverters.MessageToBytes(dir, _messageBuffer); var raw = OperationalMessage.DIR + "\n" + "id=1 nm=node1\n" + "id=1 nm=node1 op=" + opAddresses[1] + " app=" + appAddresses[1] + "\n" + "id=2 nm=node2 op=" + opAddresses[2] + " app=" + appAddresses[2] + "\n" + "id=3 nm=node3 op=" + opAddresses[3] + " app=" + appAddresses[3]; _expectedBuffer.Write(Converters.TextToBytes(raw)); Assert.Equal(_expectedBuffer.ToArray(), _messageBuffer.ToArray()); Assert.Equal(dir, Directory.From(raw)); }
private void CacheElect(MemoryStream buffer) { MessageConverters.MessageToBytes(new Elect(_node.Id), buffer); CacheMessagePair(buffer, OperationalMessage.ELECT); }
private void CacheLeader(MemoryStream buffer) { MessageConverters.MessageToBytes(new Leader(_node.Id), buffer); CacheMessagePair(buffer, OperationalMessage.LEADER); }
private void CachePing(MemoryStream buffer) { MessageConverters.MessageToBytes(new Ping(_node.Id), buffer); CacheMessagePair(buffer, OperationalMessage.PING); }
private void CacheVote(MemoryStream buffer) { MessageConverters.MessageToBytes(new Vote(_node.Id), buffer); CacheMessagePair(buffer, OperationalMessage.VOTE); }
private void CacheJoin(MemoryStream buffer) { MessageConverters.MessageToBytes(new Join(_node), buffer); CacheMessagePair(buffer, OperationalMessage.JOIN); }