Exemplo n.º 1
0
        public static async Task <IClient> New(FConfig config, ClientInfo info)
        {
            var tcpClient = new TcpClient();
            await tcpClient.ConnectAsync(info.ServerName, info.Port);

            return(new FClient(config, info, tcpClient));
        }
Exemplo n.º 2
0
        private Logger(FConfig config)
        {
            _path = config.Server.LogFileName;
            _que  = new BlockingCollection <Msg>();
            _thr  = new Thread(mainLoop);

            _thr.Start();
        }
Exemplo n.º 3
0
        public FServer(ILogger log, FConfig config, IUsersDal usersDal = null)
        {
            var tcpAcceptor = TcpAcceptor.New(config, log, this);
            var users       = usersDal ?? UsersDal.New(log, config);

            _log         = log;
            _config      = config;
            _tcpAcceptor = tcpAcceptor;
            _users       = users;
        }
Exemplo n.º 4
0
        private static void ensureUsersTable(FConfig config, SqliteConnection sqlite)
        {
            var makeCmd = sqlite.CreateCommand();

            makeCmd.CommandText = $@"
                CREATE TABLE IF NOT EXISTS {config.Sqlite.UsersName}(
                    username TEXT NOT NULL COLLATE NOCASE PRIMARY KEY,
                    password TEXT NOT NULL,
                    folder TEXT NOT NULL
                )";

            makeCmd.ExecuteNonQuery();
        }
Exemplo n.º 5
0
        private UsersDal(ILogger log, FConfig config)
        {
            var csb = new SqliteConnectionStringBuilder {
                DataSource = $"./{config.Sqlite.DbName}"
            };

            var sqlite = new SqliteConnection(csb.ConnectionString);

            sqlite.Open();

            ensureUsersTable(config, sqlite);
            log.Info("sqlite", $"'{config.Sqlite.DbName}' is connected to");

            _log       = log;
            _sqlite    = sqlite;
            _tableName = config.Sqlite.UsersName;
        }
Exemplo n.º 6
0
        private TcpAcceptor(FConfig config, ILogger log, IServer server)
        {
            FAILED_TO_ACCEPT_TCP_RETRY_TIMEOUT = config.Server.FAILED_TO_ACCEPT_TCP_RETRY_MILLISECONDS;

            TcpListener listener;

            try
            {
                listener = new TcpListener(IPAddress.Any, config.TcpPort);
                listener.Start();
            }
            catch (Exception ex)
            {
                log.Error("tcp.acceptor", ex);
                throw;
            }

            _config   = config;
            _log      = log;
            _server   = server;
            _listener = listener;

            Task.Run(() => acceptConnections());
        }
Exemplo n.º 7
0
 private FClient(FConfig config, ClientInfo info, TcpClient tcpClient)
 {
     _config    = config;
     _info      = info;
     _tcpClient = tcpClient;
 }
Exemplo n.º 8
0
 public static ILogger New(FConfig config)
 {
     return
         (new Logger(config));
 }
Exemplo n.º 9
0
 public MyClient(FConfig config)
 {
     _config            = config;
     _needsPingPongSpan = TimeSpan.FromSeconds(config.Client.NeedsPingPongSeconds);
 }
Exemplo n.º 10
0
 public static IUsersDal New(ILogger log, FConfig config)
 {
     return
         (new UsersDal(log, config));
 }
Exemplo n.º 11
0
 public static ITcpAcceptor New(FConfig config, ILogger log, IServer server)
 {
     return(new TcpAcceptor(config, log, server));
 }