Skip to content

Commit 4afd895

Browse files
committed
Grid Ops examples brought up-to-date with version 0.7.0 of Grid Ops - which had quite some changes since 0.4.0
1 parent 62f35eb commit 4afd895

12 files changed

+137
-99
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<dependency>
1414
<groupId>com.nanosai</groupId>
1515
<artifactId>grid-ops</artifactId>
16-
<version>0.2.0</version>
16+
<version>0.7.0</version>
1717
<scope>compile</scope>
1818
</dependency>
1919

src/main/java/com/nanosai/gridops/examples/iap/IapMessageFieldsWriterExample.java

-36
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.nanosai.gridops.examples.ion;
2+
3+
import com.nanosai.gridops.GridOps;
4+
import com.nanosai.gridops.ion.read.IonObjectReader;
5+
6+
/**
7+
* Created by jjenkov on 18/03/2017.
8+
*/
9+
public class IonObjectReaderExample {
10+
11+
public static void main(String[] args) {
12+
IonObjectReader ionObjectReader = GridOps.ionObjectReader(Pojo.class);
13+
14+
byte[] source = new byte[1024];
15+
16+
Pojo pojo = (Pojo) ionObjectReader.read(source, 0);
17+
}
18+
19+
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.nanosai.gridops.examples.ion;
2+
3+
import com.nanosai.gridops.GridOps;
4+
import com.nanosai.gridops.ion.write.IonObjectWriter;
5+
6+
/**
7+
* Created by jjenkov on 18/03/2017.
8+
*/
9+
public class IonObjectWriterExample {
10+
11+
public static void main(String[] args) {
12+
IonObjectWriter ionObjectWriter = GridOps.ionObjectWriter(Pojo.class);
13+
14+
Pojo pojo = new Pojo();
15+
pojo.setFirstName("Jakob");
16+
pojo.setLastName("Jenkov");
17+
18+
byte[] destination = new byte[1024];
19+
int length = ionObjectWriter.writeObject(pojo, 1, destination, 0);
20+
21+
22+
23+
}
24+
}

src/main/java/com/nanosai/gridops/examples/ion/IonWriterExample.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public static void main(String[] args) {
2020
ionWriter.writeBytes(new byte[]{ 12, 11, 122, 1, 27});
2121

2222
//obtain length of written ION data
23-
int dataLength = ionWriter.destIndex;
23+
int dataLength = ionWriter.index;
2424

2525
System.out.println("Total length of ION data: " + dataLength);
2626

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.nanosai.gridops.examples.ion;
2+
3+
/**
4+
* Created by jjenkov on 18/03/2017.
5+
*/
6+
public class Pojo {
7+
8+
private String firstName = null;
9+
private String lastName = null;
10+
11+
public String getFirstName() {
12+
return firstName;
13+
}
14+
15+
public void setFirstName(String firstName) {
16+
this.firstName = firstName;
17+
}
18+
19+
public String getLastName() {
20+
return lastName;
21+
}
22+
23+
public void setLastName(String lastName) {
24+
this.lastName = lastName;
25+
}
26+
}

src/main/java/com/nanosai/gridops/examples/node/NodeContainerExample.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.nanosai.gridops.examples.node;
22

33
import com.nanosai.gridops.GridOps;
4-
import com.nanosai.gridops.iap.IapMessage;
4+
import com.nanosai.gridops.iap.IapMessageBase;
55
import com.nanosai.gridops.ion.read.IonReader;
6+
import com.nanosai.gridops.mem.MemoryBlock;
67
import com.nanosai.gridops.node.MessageReactor;
78
import com.nanosai.gridops.node.NodeContainer;
89
import com.nanosai.gridops.node.NodeReactor;
910
import com.nanosai.gridops.node.ProtocolReactor;
11+
import com.nanosai.gridops.tcp.TcpMessagePort;
1012

1113
/**
1214
* Created by jjenkov on 15-10-2016.
@@ -18,13 +20,14 @@ public static void main(String[] args) {
1820
byte[] messageId = new byte[]{11};
1921
MessageReactor messageReactor = new MessageReactor(messageId) {
2022
@Override
21-
public void react(IonReader ionReader, IapMessage iapMessage) {
23+
public void react(MemoryBlock message, IonReader reader, IapMessageBase messageBase, TcpMessagePort tcpMessagePort) throws Exception {
2224
System.out.println("Reacting to message");
2325
}
2426
};
2527

2628
byte[] protocolId = new byte[]{99};
27-
ProtocolReactor protocolReactor = new ProtocolReactor(protocolId, messageReactor);
29+
byte[] protocolVersion = new byte[]{0};
30+
ProtocolReactor protocolReactor = new ProtocolReactor(protocolId, protocolVersion, messageReactor);
2831

2932
byte[] nodeId = new byte[]{123};
3033
NodeReactor nodeReactor = GridOps.nodeReactor(nodeId, protocolReactor);

src/main/java/com/nanosai/gridops/examples/tcp/TcpClientExample.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.nanosai.gridops.ion.write.IonWriter;
55
import com.nanosai.gridops.tcp.TcpMessage;
66
import com.nanosai.gridops.tcp.TcpSocket;
7-
import com.nanosai.gridops.tcp.TcpSocketsPort;
7+
import com.nanosai.gridops.tcp.TcpMessagePort;
88

99
import java.io.IOException;
1010
import java.net.InetSocketAddress;
@@ -19,7 +19,7 @@ public static void main(String[] args) throws IOException {
1919

2020
SocketChannel socketChannel = SocketChannel.open(new InetSocketAddress("localhost", 1111));
2121

22-
final TcpSocketsPort socketsPort = GridOps.tcpSocketsPortBuilder().build();
22+
final TcpMessagePort socketsPort = GridOps.tcpMessagePortBuilder().build();
2323

2424
TcpSocket tcpSocket = socketsPort.addSocket(socketChannel);
2525

@@ -31,7 +31,7 @@ public static void main(String[] args) throws IOException {
3131
//todo convenience method for MemoryBlock's as destination
3232
ionWriter.setDestination(request.memoryAllocator.data, request.startIndex);
3333

34-
int ionObjectStartIndex = ionWriter.destIndex;
34+
int ionObjectStartIndex = ionWriter.index;
3535
ionWriter.writeObjectBegin(1);
3636

3737
ionWriter.writeKeyShort("field1");
@@ -40,19 +40,19 @@ public static void main(String[] args) throws IOException {
4040
ionWriter.writeKeyShort("field2");
4141
ionWriter.writeInt64(456);
4242

43-
int ionObjectBodyLength = ionWriter.destIndex - ionObjectStartIndex - 1 -1; // -1 for lead byte, -1 for length byte.
43+
int ionObjectBodyLength = ionWriter.index - ionObjectStartIndex - 1 -1; // -1 for lead byte, -1 for length byte.
4444
ionWriter.writeObjectEnd(ionObjectStartIndex, 1, ionObjectBodyLength);
4545

46-
request.writeIndex = ionWriter.destIndex;
46+
request.writeIndex = ionWriter.index;
4747

4848
//todo missing what socket the message should be sent to. Must be a TCPSocket - not a SocketChannel.
4949
request.tcpSocket = tcpSocket;
5050

51-
socketsPort.enqueue(request);
51+
socketsPort.writeNowOrEnqueue(request);
5252

5353
// make sure all written messages are flushed out - although a single call to writeToSockets()
5454
// does not guarantee that.
55-
socketsPort.writeToSockets();
55+
socketsPort.writeNow();
5656

5757

5858

src/main/java/com/nanosai/gridops/examples/tcp/TcpSocketsPortCreate.java src/main/java/com/nanosai/gridops/examples/tcp/TcpMessagePortCreate.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22

33
import com.nanosai.gridops.GridOps;
44
import com.nanosai.gridops.tcp.TcpServer;
5-
import com.nanosai.gridops.tcp.TcpSocketsPort;
5+
import com.nanosai.gridops.tcp.TcpMessagePort;
66

77
import java.io.IOException;
88

99
/**
1010
* Created by jjenkov on 07-10-2016.
1111
*/
12-
public class TcpSocketsPortCreate {
12+
public class TcpMessagePortCreate {
1313

1414

1515
public static void main(String[] args) throws IOException {
1616
TcpServer tcpServer = GridOps.tcpServerBuilder().buildAndStart();
1717

18-
TcpSocketsPort tcpSocketsPort =
19-
GridOps.tcpSocketsPortBuilder().tcpServer(tcpServer).build();
18+
TcpMessagePort tcpMessagePort =
19+
GridOps.tcpMessagePortBuilder().tcpServer(tcpServer).build();
2020
}
2121
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.nanosai.gridops.examples.tcp;
2+
3+
import com.nanosai.gridops.GridOps;
4+
import com.nanosai.gridops.mem.MemoryBlock;
5+
import com.nanosai.gridops.mem.MemoryBlockBatch;
6+
import com.nanosai.gridops.tcp.TcpServer;
7+
import com.nanosai.gridops.tcp.TcpMessagePort;
8+
9+
import java.io.IOException;
10+
11+
/**
12+
* Created by jjenkov on 07-10-2016.
13+
*/
14+
public class TcpMessagePortRead {
15+
16+
public static void main(String[] args) throws IOException {
17+
TcpServer tcpServer = GridOps.tcpServerBuilder().buildAndStart();
18+
19+
TcpMessagePort tcpMessagePort =
20+
GridOps.tcpMessagePortBuilder().tcpServer(tcpServer).build();
21+
22+
MemoryBlockBatch memoryBlockBatch = new MemoryBlockBatch(64);
23+
24+
int messageCount = tcpMessagePort.readNow(memoryBlockBatch);
25+
26+
for(int i=0; i<messageCount; i++){
27+
MemoryBlock message = memoryBlockBatch.blocks[i];
28+
}
29+
30+
/* shorter version of reading and looping messages */
31+
for(int i=0, n=tcpMessagePort.readNow(memoryBlockBatch); i<n; i++){
32+
MemoryBlock message = memoryBlockBatch.blocks[i];
33+
}
34+
35+
36+
}
37+
}

src/main/java/com/nanosai/gridops/examples/tcp/TcpServerExample.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import com.nanosai.gridops.GridOps;
44
import com.nanosai.gridops.mem.MemoryBlock;
5+
import com.nanosai.gridops.mem.MemoryBlockBatch;
56
import com.nanosai.gridops.tcp.TcpMessage;
67
import com.nanosai.gridops.tcp.TcpServer;
7-
import com.nanosai.gridops.tcp.TcpSocketsPort;
8+
import com.nanosai.gridops.tcp.TcpMessagePort;
89

910
import java.io.IOException;
1011

@@ -19,34 +20,33 @@ public static void main(String[] args) throws IOException {
1920

2021
TcpServer tcpServer1 = GridOps.tcpServerBuilder().buildAndStart();
2122

22-
final TcpSocketsPort socketsProxy =
23-
GridOps.tcpSocketsPortBuilder().tcpServer(tcpServer1).build();
24-
25-
MemoryBlock[] requests = new MemoryBlock[1024];
23+
final TcpMessagePort tcpMessagePort =
24+
GridOps.tcpMessagePortBuilder().tcpServer(tcpServer1).build();
2625

26+
MemoryBlockBatch memoryBlockBatch = new MemoryBlockBatch(1024);
2727

2828
System.out.println("Server started");
2929

3030
while(true){
3131
try {
32-
socketsProxy.addSocketsFromSocketQueue();
32+
tcpMessagePort.addSocketsFromSocketQueue();
3333

3434
//process inbound messages.
35-
int requestCount = socketsProxy.read(requests);
35+
int requestCount = tcpMessagePort.readNow(memoryBlockBatch);
3636
for(int i=0; i < requestCount; i++){
37-
TcpMessage request = (TcpMessage) requests[i];
37+
TcpMessage request = (TcpMessage) memoryBlockBatch.blocks[i];
3838

3939
System.out.println("Processing message");
4040

41-
TcpMessage response = socketsProxy.allocateWriteMemoryBlock(1024);
41+
TcpMessage response = tcpMessagePort.allocateWriteMemoryBlock(1024);
4242
response.copyFrom(request);
4343

4444
response.tcpSocket = request.tcpSocket;
4545

46-
socketsProxy.enqueue(response);
46+
tcpMessagePort.writeNowOrEnqueue(response);
4747
}
4848

49-
socketsProxy.writeToSockets();
49+
tcpMessagePort.writeNow();
5050

5151

5252
try {

src/main/java/com/nanosai/gridops/examples/tcp/TcpSocketsPortRead.java

-36
This file was deleted.

0 commit comments

Comments
 (0)