Commit 3f7f257d289f56f8dda8a10c744d388349aae0ac

Authored by Yura
1 parent 72682dbf

init

1 -/**  
2 - * Copyright © 2016-2018 The Thingsboard Authors  
3 - *  
4 - * Licensed under the Apache License, Version 2.0 (the "License");  
5 - * you may not use this file except in compliance with the License.  
6 - * You may obtain a copy of the License at  
7 - *  
8 - * http://www.apache.org/licenses/LICENSE-2.0  
9 - *  
10 - * Unless required by applicable law or agreed to in writing, software  
11 - * distributed under the License is distributed on an "AS IS" BASIS,  
12 - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
13 - * See the License for the specific language governing permissions and  
14 - * limitations under the License.  
15 - */  
16 -package org.thingsboard.server.service.cluster.rpc;  
17 -  
18 -import io.grpc.stub.StreamObserver;  
19 -import org.thingsboard.server.gen.cluster.ClusterAPIProtos;  
20 -  
21 -import java.util.concurrent.*;  
22 -  
23 -/**  
24 - * @author Andrew Shvayka  
25 - */  
26 -public class RpcSessionCreationFuture implements Future<StreamObserver<ClusterAPIProtos.ToRpcServerMessage>> {  
27 -  
28 - private final BlockingQueue<StreamObserver<ClusterAPIProtos.ToRpcServerMessage>> queue = new ArrayBlockingQueue<>(1);  
29 -  
30 - public void onMsg(StreamObserver<ClusterAPIProtos.ToRpcServerMessage> result) throws InterruptedException {  
31 - queue.put(result);  
32 - }  
33 -  
34 - @Override  
35 - public boolean cancel(boolean mayInterruptIfRunning) {  
36 - return false;  
37 - }  
38 -  
39 - @Override  
40 - public boolean isCancelled() {  
41 - return false;  
42 - }  
43 -  
44 - @Override  
45 - public boolean isDone() {  
46 - return false;  
47 - }  
48 -  
49 - @Override  
50 - public StreamObserver<ClusterAPIProtos.ToRpcServerMessage> get() throws InterruptedException, ExecutionException {  
51 - return this.queue.take();  
52 - }  
53 -  
54 - @Override  
55 - public StreamObserver<ClusterAPIProtos.ToRpcServerMessage> get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {  
56 - StreamObserver<ClusterAPIProtos.ToRpcServerMessage> result = this.queue.poll(timeout, unit);  
57 - if (result == null) {  
58 - throw new TimeoutException();  
59 - } else {  
60 - return result;  
61 - }  
62 - }  
63 -}  
@@ -95,3 +95,33 @@ service ClusterRpcService { @@ -95,3 +95,33 @@ service ClusterRpcService {
95 rpc handlePluginMsgs(stream ToRpcServerMessage) returns (stream ToRpcServerMessage) {} 95 rpc handlePluginMsgs(stream ToRpcServerMessage) returns (stream ToRpcServerMessage) {}
96 } 96 }
97 97
  98 +message ClusterMessage {
  99 + MessageType messageType = 1;
  100 + MessageMataInfo messageMetaInfo = 2;
  101 + ServerAddress serverAdresss = 3;
  102 + bytes payload = 4;
  103 +}
  104 +
  105 +message ServerAddress {
  106 + string host = 1;
  107 + int32 port = 2;
  108 +}
  109 +
  110 +message MessageMataInfo {
  111 + string payloadMetaInfo = 1;
  112 + repeated string tags = 2;
  113 +}
  114 +
  115 +
  116 +enum MessageType {
  117 +
  118 + //Cluster control messages
  119 + RPC_SESSION_CREATE_REQUEST_MSG = 0;
  120 + TO_ALL_NODES_MSG = 1;
  121 + RPC_SESSION_TELL_MSG = 2;
  122 + RPC_BROADCAST_MSG = 3;
  123 + CONNECT_RPC_MESSAGE =4;
  124 +
  125 + //CLUSTER_DATA_MESSAGE
  126 + CLUSTER_NETWORK_SERVER_DATA_MESSAGE = 5;
  127 +}
1 /** 1 /**
2 * Copyright © 2016-2018 The Thingsboard Authors 2 * Copyright © 2016-2018 The Thingsboard Authors
3 - * <p> 3 + *
4 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License. 5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at 6 * You may obtain a copy of the License at
7 - * <p>  
8 - * http://www.apache.org/licenses/LICENSE-2.0  
9 - * <p> 7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
10 * Unless required by applicable law or agreed to in writing, software 10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, 11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.