Пример #1
0
        public static TcpMsgHandshake BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            TcpMsgHandshake m = new TcpMsgHandshake();  //!!!!!!!!!!!!!! change return type

            m.NodeListeningPort = decoder.GetInt();
            m.NodeUID           = decoder.GetLong();

            return(m);
        }
        public static VoteOfCandidate BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            VoteOfCandidate m = new VoteOfCandidate();  //!!!!!!!!!!!!!! change return type

            m.TermId   = decoder.GetULong();
            m.VoteType = (eVoteType)decoder.GetInt();

            return(m);
        }
Пример #3
0
        public static StateLogEntryRedirectRequest BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                decoder = new Biser.Decoder(extDecoder);
                if (decoder.IsNull)
                {
                    return(null);
                }
            }

            StateLogEntryRedirectRequest m = new StateLogEntryRedirectRequest();  //!!!!!!!!!!!!!! change return type

            m.Data = decoder.GetByteArray();

            return(m);
        }
Пример #4
0
        public static LeaderHeartbeat BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                decoder = new Biser.Decoder(extDecoder);
                if (decoder.IsNull)
                {
                    return(null);
                }
            }

            LeaderHeartbeat m = new LeaderHeartbeat();  //!!!!!!!!!!!!!! change return type

            m.LeaderTerm                     = decoder.GetULong();
            m.StateLogLatestTerm             = decoder.GetULong();
            m.StateLogLatestIndex            = decoder.GetULong();
            m.LastStateLogCommittedIndex     = decoder.GetULong();
            m.LastStateLogCommittedIndexTerm = decoder.GetULong();


            return(m);
        }
        public static StateLogEntryApplied BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            StateLogEntryApplied m = new StateLogEntryApplied();  //!!!!!!!!!!!!!! change return type

            m.StateLogEntryId   = decoder.GetULong();
            m.StateLogEntryTerm = decoder.GetULong();


            return(m);
        }
Пример #6
0
        public static StateLogEntrySuggestion BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            StateLogEntrySuggestion m = new StateLogEntrySuggestion();  //!!!!!!!!!!!!!! change return type

            m.LeaderTerm    = decoder.GetULong();
            m.StateLogEntry = StateLogEntry.BiserDecode(extDecoder: decoder);
            m.IsCommitted   = decoder.GetBool();

            return(m);
        }
Пример #7
0
        public static TcpMsgRaft BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            TcpMsgRaft m = new TcpMsgRaft();  //!!!!!!!!!!!!!! change return type

            m.RaftSignalType = (eRaftSignalType)decoder.GetInt();
            m.Data           = decoder.GetByteArray();
            m.EntityName     = decoder.GetString();

            return(m);
        }
Пример #8
0
        public static TcpClusterEndPoint BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            TcpClusterEndPoint m = new TcpClusterEndPoint();  //!!!!!!!!!!!!!! change return type

            m.Host = decoder.GetString();
            m.Port = decoder.GetInt();

            return(m);
        }
Пример #9
0
        public static CandidateRequest BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                decoder = new Biser.Decoder(extDecoder);
                if (decoder.IsNull)
                {
                    return(null);
                }
            }

            CandidateRequest m = new CandidateRequest();  //!!!!!!!!!!!!!! change return type

            m.TermId     = decoder.GetULong();
            m.LastLogId  = decoder.GetULong();
            m.LastTermId = decoder.GetULong();

            return(m);
        }
Пример #10
0
        public static StateLogEntry BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                decoder = new Biser.Decoder(extDecoder);
                if (decoder.IsNull)
                {
                    return(null);
                }
            }

            StateLogEntry m = new StateLogEntry();  //!!!!!!!!!!!!!! change return type

            m.Term                 = decoder.GetULong();
            m.Index                = decoder.GetULong();
            m.Data                 = decoder.GetByteArray();
            m.IsCommitted          = decoder.GetBool();
            m.PreviousStateLogId   = decoder.GetULong();
            m.PreviousStateLogTerm = decoder.GetULong();

            return(m);
        }
Пример #11
0
        public static HttpCapsule BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null)
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            HttpCapsule m = new HttpCapsule();



            m.Action     = decoder.GetString();
            m.EntityType = decoder.GetString();
            m.IsOk       = decoder.GetBool();
            m.Body       = decoder.GetByteArray();


            return(m);
        }
Пример #12
0
        public static TcpMsg BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                decoder = new Biser.Decoder(extDecoder);
                if (decoder.IsNull)
                {
                    return(null);
                }
            }

            TcpMsg m = new TcpMsg();  //!!!!!!!!!!!!!! change return type

            m.MsgType    = decoder.GetString();
            m.Data       = decoder.GetByteArray();
            m.DataString = decoder.GetString();

            return(m);
        }
Пример #13
0
        public static TS7 BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null)
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            TS7 m = new TS7();



            m.VoteType = (eVoteType)decoder.GetShort();
            m.Barabaka = decoder.GetInt();


            return(m);
        }
Пример #14
0
        public static StateLogEntryRedirectResponse BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                //decoder = new Biser.Decoder(extDecoder);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }

            StateLogEntryRedirectResponse m = new StateLogEntryRedirectResponse();  //!!!!!!!!!!!!!! change return type

            m.ResponseType = (eResponseType)decoder.GetInt();
            //m.RedirectId = decoder.GetULong();

            return(m);
        }
Пример #15
0
        internal List <TcpClusterEndPoint> clusterEndPoints = new List <TcpClusterEndPoint>();  //init clusterEndPoints creating 1-N connection


        public TcpRaftNode(List <TcpClusterEndPoint> clusterEndPoints, List <RaftNodeSettings> raftNodes, string dbreezePath, Func <string, ulong, byte[], bool> OnCommit, int port = 4250, IWarningLog log = null)
        {
            //this.rn_settings = rn_settings ?? new RaftNodeSettings();

            this.log  = log;
            this.port = port;
            if (clusterEndPoints != null)
            {
                var bt      = clusterEndPoints.SerializeBiser();
                var decoder = new Biser.Decoder(bt);
                this.clusterEndPoints = new List <TcpClusterEndPoint>();
                decoder.GetCollection(() => { return(TcpClusterEndPoint.BiserDecode(extDecoder: decoder)); }, this.clusterEndPoints, false);

                //this.clusterEndPoints.AddRange(clusterEndPoints.SerializeProtobuf().DeserializeProtobuf<List<TcpClusterEndPoint>>());
            }
            spider = new TcpSpider(this);

            bool firstNode = true;

            foreach (var rn_settings in raftNodes)
            {
                if (firstNode)
                {
                    rn_settings.EntityName = "default";
                    firstNode = false;
                }

                if (String.IsNullOrEmpty(rn_settings.EntityName))
                {
                    throw new Exception("Raft.Net: entities must have unique names. Change RaftNodeSettings.EntityName.");
                }

                if (this.raftNodes.ContainsKey(rn_settings.EntityName))
                {
                    throw new Exception("Raft.Net: entities must have unique names. Change RaftNodeSettings.EntityName.");
                }

                var rn = new RaftNode(rn_settings ?? new RaftNodeSettings(), dbreezePath, this.spider, this.log, OnCommit);

#if DEBUG
                rn.Verbose = rn_settings.VerboseRaft;                               //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   DEBUG PURPOSES
#endif
                rn.SetNodesQuantityInTheCluster((uint)this.clusterEndPoints.Count); //!!!!!!!!!!!!  ENABLE 1 for debug, make it dynamic (but not less then 3 if not DEBUG)
                rn.NodeAddress.NodeAddressId = port;                                //for debug/emulation purposes

                rn.NodeAddress.NodeUId = Guid.NewGuid().ToByteArray().Substring(8, 8).To_Int64_BigEndian();

                this.raftNodes[rn_settings.EntityName] = rn;

                rn.NodeStart();
            }
        }
Пример #16
0
        public static TS2 BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }

                //decoder = new Biser.Decoder(extDecoder);
                //if (decoder.IsNull)
                //    return null;
            }

            TS2 m = new TS2();      //!!!!!!!!!!!!!! change return type

            m.P1 = decoder.GetLong();
            m.P2 = decoder.GetDouble();

            m.P3 = decoder.CheckNull() ? null : new List <TS3>();
            if (m.P3 != null)
            {
                decoder.GetCollection(() => { return(TS3.BiserDecode(null, decoder)); }, m.P3, true);
            }

            m.P4 = TS3.BiserDecode(null, decoder);

            m.P5 = decoder.GetUInt_NULL();

            return(m);
        }
Пример #17
0
        public static ExchangeData BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null)
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            ExchangeData m = new ExchangeData();



            m.LastServerSyncTimeStamp = decoder.GetLong();
            m.SyncOperations          = decoder.CheckNull() ? null : new System.Collections.Generic.List <SyncOperation>();
            if (m.SyncOperations != null)
            {
                decoder.GetCollection(() => {
                    var pvar1 = SyncOperation.BiserDecode(null, decoder);
                    return(pvar1);
                }, m.SyncOperations, true);
            }
            m.RepeatSynchro          = decoder.GetBool();
            m.NewServerSyncTimeStamp = decoder.GetLong();


            return(m);
        }
Пример #18
0
        public static TS3 BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }

                //decoder = new Biser.Decoder(extDecoder);
                //if (decoder.IsNull)
                //    return null;
            }

            TS3 m = new TS3();      //!!!!!!!!!!!!!! change return type

            m.P1 = decoder.GetString();
            m.P2 = decoder.GetInt_NULL();
            m.P3 = decoder.GetDateTime();

            return(m);
        }//eof
Пример #19
0
        public static SyncOperation BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null)
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }
            }

            SyncOperation m = new SyncOperation();



            m.SyncTimestamp    = decoder.GetLong();
            m.SerializedObject = decoder.GetByteArray();
            m.Operation        = (eOperation)decoder.GetInt();
            m.Type             = decoder.GetString();
            m.InternalId       = decoder.GetLong();
            m.ExternalId       = decoder.GetLong();


            return(m);
        }
Пример #20
0
        public static TS1 BiserDecode(byte[] enc = null, Biser.Decoder extDecoder = null) //!!!!!!!!!!!!!! change return type
        {
            Biser.Decoder decoder = null;
            if (extDecoder == null)
            {
                if (enc == null || enc.Length == 0)
                {
                    return(null);
                }
                decoder = new Biser.Decoder(enc);
                if (decoder.CheckNull())
                {
                    return(null);
                }
            }
            else
            {
                if (extDecoder.CheckNull())
                {
                    return(null);
                }
                else
                {
                    decoder = extDecoder;
                }

                //decoder = new Biser.Decoder(extDecoder);
                //if (decoder.IsNull)
                //    return null;
            }

            TS1 m = new TS1();  //!!!!!!!!!!!!!! change return type

            m.P1 = decoder.GetInt();
            m.P2 = decoder.GetInt();
            m.P3 = decoder.GetDecimal();

            m.P4 = decoder.CheckNull() ? null : new List <TS2>();
            if (m.P4 != null)
            {
                decoder.GetCollection(() => { return(TS2.BiserDecode(null, decoder)); }, m.P4, true);
            }

            m.P5 = decoder.CheckNull() ? null : new Dictionary <long, TS3>();
            if (m.P5 != null)
            {
                decoder.GetCollection(() => {
                    return(decoder.GetLong());
                },
                                      () => { return(TS3.BiserDecode(null, decoder)); }, m.P5, true);
            }

            m.P6 = decoder.CheckNull() ? null : new Dictionary <uint, List <TS3> >();
            if (m.P6 != null)
            {
                decoder.GetCollection(
                    () => { return(decoder.GetUInt()); },
                    () =>
                {
                    var iList = decoder.CheckNull() ? null : new List <TS3>();
                    if (iList != null)
                    {
                        decoder.GetCollection(() => { return(TS3.BiserDecode(extDecoder: decoder)); }, iList, true);
                    }
                    return(iList);
                },
                    m.P6, true);
            }

            m.P7 = TS2.BiserDecode(extDecoder: decoder);

            m.P8 = decoder.CheckNull() ? null : new List <Tuple <string, byte[], TS3> >();
            if (m.P8 != null)
            {
                decoder.GetCollection
                    (() => {
                    return(new Tuple <string, byte[], TS3>
                               (decoder.GetString(),
                               decoder.GetByteArray(),
                               TS3.BiserDecode(null, decoder)));
                }, m.P8, true);
            }

            m.P9 = new Tuple <float, TS2, TS3, decimal?>
                       (decoder.GetFloat(), TS2.BiserDecode(null, decoder), TS3.BiserDecode(null, decoder), decoder.GetDecimal_NULL());

            return(m);
        }