Bend.Repl.ReplHandler.requestToJoin C# (CSharp) Method

requestToJoin() public method

public requestToJoin ( string server_guid ) : JoinInfo
server_guid string
return JoinInfo
        public JoinInfo requestToJoin(string server_guid)
        {
            // (1) record his guid
            next_stage.setValue(new RecordKey()
                .appendKeyPart("_config").appendKeyPart("seeds").appendKeyPart(server_guid),
                RecordUpdate.WithPayload(""));

            // (2) send him our instance ID and a list of seeds
            var ji = new JoinInfo();
            ji.data_instance_id = this.data_instance_id;

            ji.seed_servers = new List<string>();
            var seed_key_prefix = new RecordKey()
                .appendKeyPart("_config")
                .appendKeyPart("seeds");
            foreach (var row in next_stage.scanForward(new ScanRange<RecordKey>(seed_key_prefix, RecordKey.AfterPrefix(seed_key_prefix), null))) {
                string sname =
                    ((RecordKeyType_String)row.Key.key_parts[row.Key.key_parts.Count - 1]).GetString();
                ji.seed_servers.Add(sname);
            }
            // add ourself to the seed list!
            if (!ji.seed_servers.Contains(this.ctx.server_guid)) {
                ji.seed_servers.Add(this.ctx.server_guid);
            }
            return ji;
        }