/** * <summary> * Converts node bean to protocol message.</summary> * * <param name="node">Node bean to convert.</param> * <returns>Converted message.</returns> */ private static GridClientNodeBean WrapNode(ProtoNodeBean node) { GridClientNodeBean bean = new GridClientNodeBean(); bean.NodeId = WrapGuid(node.NodeId); bean.TcpPort = node.TcpPort; bean.JettyPort = node.JettyPort; bean.ConsistentId = WrapObject(node.ConsistentId); bean.ReplicaCount = node.ReplicaCount; bean.TcpAddresses.AddAll(node.TcpAddressList); bean.TcpHostNames.AddAll(node.TcpHostNameList); bean.JettyAddresses.AddAll(node.JettyAddressList); bean.JettyHostNames.AddAll(node.JettyHostNameList); if (node.HasCaches) { bean.Caches.AddAll <KeyValuePair <String, String> >(WrapMap <String, String>(node.Caches)); } if (node.HasAttributes) { bean.Attributes.AddAll <KeyValuePair <String, Object> >(WrapMap <String, Object>(node.Attributes)); } if (node.HasMetrics) { bean.Metrics.AddAll <KeyValuePair <String, Object> >(WrapMetrics(node.Metrics)); } return(bean); }
/** * <summary> * Converts node bean to protocol message.</summary> * * <param name="node">Node bean to convert.</param> * <returns>Converted message.</returns> */ private static ProtoNodeBean WrapNode(GridClientNodeBean node) { ProtoNodeBean.Builder builder = ProtoNodeBean.CreateBuilder() .SetNodeId(WrapGuid(node.NodeId)) .SetTcpPort(node.TcpPort) .SetJettyPort(node.JettyPort) .SetConsistentId(WrapObject(node.ConsistentId)) .SetReplicaCount(node.ReplicaCount); if (node.TcpAddresses != null) { foreach (String addr in node.TcpAddresses) { builder.AddTcpAddress(addr); } } if (node.TcpHostNames != null) { foreach (String addr in node.TcpHostNames) { builder.AddTcpHostName(addr); } } if (node.JettyAddresses != null) { foreach (String addr in node.JettyAddresses) { builder.AddJettyAddress(addr); } } if (node.JettyHostNames != null) { foreach (String addr in node.JettyHostNames) { builder.AddJettyHostName(addr); } } if (node.Caches != null) { builder.SetCaches(WrapMap(node.Caches)); } if (node.Attributes != null) { builder.SetAttributes(WrapMap(node.Attributes)); } if (node.Metrics != null) { builder.SetMetrics(WrapMetrics(node.Metrics)); } return(builder.Build()); }
/** * <summary> * Converts protocol object into object.</summary> * * <param name="val">Protocol message object to convert into value.</param> * <returns>Recovered object.</returns> */ public static Object WrapObject(ObjectWrapper val) { byte[] bin = val.Binary.ToByteArray(); // Primitives. switch (val.Type) { case ObjectWrapperType.NONE: return(null); case ObjectWrapperType.BOOL: Dbg.Assert(bin.Length == 1, "bin.Length == 1"); return(bin[0] != 0); case ObjectWrapperType.BYTE: Dbg.Assert(bin.Length == 1, "bin.Length == 1"); return(bin[0]); case ObjectWrapperType.SHORT: Dbg.Assert(bin.Length == 2, "bin.Length == 2"); return(U.BytesToInt16(bin, 0)); case ObjectWrapperType.INT32: Dbg.Assert(bin.Length == 4, "bin.Length == 4"); return(U.BytesToInt32(bin, 0)); case ObjectWrapperType.INT64: Dbg.Assert(bin.Length == 8, "bin.Length == 8"); return(U.BytesToInt64(bin, 0)); case ObjectWrapperType.FLOAT: Dbg.Assert(bin.Length == 4, "bin.Length == 4"); return(U.BytesToSingle(bin, 0)); case ObjectWrapperType.DOUBLE: Dbg.Assert(bin.Length == 8, "bin.Length == 8"); return(U.BytesToDouble(bin, 0)); case ObjectWrapperType.BYTES: return(bin); case ObjectWrapperType.UUID: return(WrapGuid(val.Binary)); case ObjectWrapperType.STRING: return(val.Binary.ToStringUtf8()); case ObjectWrapperType.COLLECTION: return(WrapCollection(Collection.ParseFrom(bin))); case ObjectWrapperType.MAP: return(WrapMap(Map.ParseFrom(bin))); case ObjectWrapperType.AUTH_REQUEST: return(WrapAuthRequest(ProtoRequest.ParseFrom(bin))); case ObjectWrapperType.CACHE_REQUEST: return(WrapCacheRequest(ProtoRequest.ParseFrom(bin))); case ObjectWrapperType.TASK_REQUEST: return(WrapTaskRequest(ProtoRequest.ParseFrom(bin))); case ObjectWrapperType.LOG_REQUEST: return(WrapLogRequest(ProtoRequest.ParseFrom(bin))); case ObjectWrapperType.TOPOLOGY_REQUEST: return(WrapTopologyRequest(ProtoRequest.ParseFrom(bin))); case ObjectWrapperType.RESPONSE: return(WrapResponse(ProtoResponse.ParseFrom(bin))); case ObjectWrapperType.NODE_BEAN: return(WrapNode(ProtoNodeBean.ParseFrom(bin))); case ObjectWrapperType.TASK_BEAN: return(WrapTaskResult(ProtoTaskBean.ParseFrom(bin))); default: throw new ArgumentException("Failed to deserialize object (object deserialization" + " of given type is not supported): " + val.Type); } }