qnetdice

annotate src/main.cc @ 1:92377189a5c6

moving along
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 22 Dec 2013 04:08:50 +0200
parents 0e9c16d77e47
children 2e57c80653af
rev   line source
nuclear@1 1 #include <stdlib.h>
nuclear@1 2 #include <time.h>
nuclear@1 3 #include <vector>
nuclear@1 4 #include <QApplication>
nuclear@1 5 #include <QStatusBar>
nuclear@1 6 #include "main.h"
nuclear@0 7 #include "mainwin.h"
nuclear@1 8 #include "roll.h"
nuclear@1 9 #include "logger.h"
nuclear@1 10
nuclear@1 11 static void new_client();
nuclear@1 12 static void status_log(const char *msg, void *cls);
nuclear@1 13
nuclear@1 14 std::vector<Roll*> dice;
nuclear@1 15 QTcpServer *server;
nuclear@1 16 std::vector<QTcpSocket*> clients;
nuclear@1 17
nuclear@1 18 QTcpSocket *socket;
nuclear@1 19
nuclear@1 20 static std::string srv_passwd;
nuclear@1 21 static MainWindow win_main;
nuclear@0 22
nuclear@0 23 int main(int argc, char *argv[])
nuclear@0 24 {
nuclear@1 25 srand(time(0));
nuclear@0 26
nuclear@1 27 QApplication app(argc, argv);
nuclear@1 28 win_main.show();
nuclear@1 29
nuclear@1 30 set_log_file(stdout);
nuclear@1 31 set_log_callback(status_log, win_main.statusBar());
nuclear@1 32
nuclear@1 33 return app.exec();
nuclear@0 34 }
nuclear@1 35
nuclear@1 36
nuclear@1 37 void start_server(int port, const char *passwd)
nuclear@1 38 {
nuclear@1 39 if(server) return;
nuclear@1 40
nuclear@1 41 log_message("starting server on port: %d\n", port);
nuclear@1 42
nuclear@1 43 server = new QTcpServer;
nuclear@1 44 server->listen(QHostAddress::Any, port);
nuclear@1 45 srv_passwd = passwd;
nuclear@1 46
nuclear@1 47 QObject::connect(server, &QTcpServer::newConnection, new_client);
nuclear@1 48 }
nuclear@1 49
nuclear@1 50
nuclear@1 51 static void new_client()
nuclear@1 52 {
nuclear@1 53 QTcpSocket *sock = server->nextPendingConnection();
nuclear@1 54 if(!sock) return;
nuclear@1 55
nuclear@1 56 QHostAddress client_addr = sock->peerAddress();
nuclear@1 57 clients.push_back(sock);
nuclear@1 58
nuclear@1 59 log_message("received connection request from: %s\n", client_addr.toString().toUtf8().data());
nuclear@1 60 }
nuclear@1 61
nuclear@1 62 void connect(const char *host, int port, const char *passwd)
nuclear@1 63 {
nuclear@1 64 log_message("connecting to host: %s port: %d\n", host, port);
nuclear@1 65 }
nuclear@1 66
nuclear@1 67
nuclear@1 68 static void status_log(const char *msg, void *cls)
nuclear@1 69 {
nuclear@1 70 QStatusBar *sbar = (QStatusBar*)cls;
nuclear@1 71 sbar->showMessage(msg);
nuclear@1 72 }