Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
16cc20a6
Commit
16cc20a6
authored
Apr 16, 2009
by
Max-Wilhelm Bruker
Browse files
removed thread
parent
8680bce5
Changes
10
Hide whitespace changes
Inline
Side-by-side
cockatrice/src/decklistmodel.cpp
View file @
16cc20a6
...
...
@@ -77,7 +77,7 @@ bool DeckListModel::loadFromFile(const QString &fileName)
while
(
!
in
.
atEnd
())
{
QString
line
=
in
.
readLine
().
simplified
();
bool
isSideboard
=
false
;
if
(
line
.
startsWith
(
"SB:"
))
{
if
(
line
.
startsWith
(
"SB:"
,
Qt
::
CaseInsensitive
))
{
line
=
line
.
mid
(
3
).
trimmed
();
isSideboard
=
true
;
}
...
...
cockatrice/src/main.cpp
View file @
16cc20a6
...
...
@@ -38,13 +38,15 @@ void myMessageOutput(QtMsgType type, const char *msg)
int
main
(
int
argc
,
char
*
argv
[])
{
//
qInstallMsgHandler(myMessageOutput);
qInstallMsgHandler
(
myMessageOutput
);
QApplication
app
(
argc
,
argv
);
app
.
addLibraryPath
(
"plugins"
);
QTextCodec
::
setCodecForCStrings
(
QTextCodec
::
codecForName
(
"UTF-8"
));
MainWindow
*
ui
=
new
MainWindow
;
qDebug
(
"main(): MainWindow constructor finished"
);
ui
->
show
();
qDebug
(
"main(): ui->show() finished"
);
return
app
.
exec
();
}
...
...
servatrice/src/server.cpp
View file @
16cc20a6
...
...
@@ -18,7 +18,6 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include
"server.h"
#include
"servergamethread.h"
#include
"servergame.h"
#include
"serversocket.h"
#include
"counter.h"
...
...
@@ -48,19 +47,12 @@ bool Server::openDatabase()
return
sqldb
.
open
();
}
void
Server
::
gameCreated
(
ServerGame
*
_game
,
ServerSocket
*
_creator
)
{
games
<<
_game
;
_creator
->
moveToThread
(
_game
->
thread
());
_game
->
addPlayer
(
_creator
);
}
void
Server
::
addGame
(
const
QString
description
,
const
QString
password
,
const
int
maxPlayers
,
ServerSocket
*
creator
)
{
ServerGame
Thread
*
newThread
=
new
ServerGame
Th
rea
d
(
nextGameId
++
,
description
,
password
,
maxPlayers
,
creator
);
connect
(
newThread
,
SIGNAL
(
gameCreated
(
ServerGame
*
,
ServerSocket
*
)),
this
,
SLOT
(
gameCreated
(
ServerGame
*
,
ServerSocket
*
)))
;
connect
(
new
Thread
,
SIGNAL
(
finished
()),
this
,
SLOT
(
gameClos
ed
()));
new
Thread
->
start
(
);
ServerGame
*
newGame
=
new
ServerGame
(
c
rea
tor
,
nextGameId
++
,
description
,
password
,
maxPlayers
);
games
<<
newGame
;
connect
(
new
Game
,
SIGNAL
(
gameClosing
()),
this
,
SLOT
(
gameClos
ing
()));
new
Game
->
addPlayer
(
creator
);
}
void
Server
::
incomingConnection
(
int
socketId
)
...
...
@@ -74,12 +66,18 @@ void Server::incomingConnection(int socketId)
AuthenticationResult
Server
::
checkUserPassword
(
const
QString
&
user
,
const
QString
&
password
)
{
if
(
!
QSqlDatabase
::
database
().
isOpen
())
if
(
!
openDatabase
())
{
qCritical
(
QString
(
"Database error: %1"
).
arg
(
QSqlDatabase
::
database
().
lastError
().
text
()).
toLatin1
());
return
PasswordWrong
;
}
QSqlQuery
query
;
query
.
prepare
(
"select password from users where name = :name"
);
query
.
bindValue
(
":name"
,
user
);
if
(
!
query
.
exec
())
{
qCritical
(
QString
(
"Database error: %1"
).
arg
(
query
.
lastError
().
text
()).
toLatin1
());
exit
(
-
1
)
;
return
PasswordWrong
;
}
if
(
query
.
next
())
{
if
(
query
.
value
(
0
).
toString
()
==
password
)
...
...
@@ -107,11 +105,9 @@ QList<ServerGame *> Server::listOpenGames()
QListIterator
<
ServerGame
*>
i
(
games
);
while
(
i
.
hasNext
())
{
ServerGame
*
tmp
=
i
.
next
();
tmp
->
mutex
->
lock
();
if
((
!
tmp
->
getGameStarted
())
&&
(
tmp
->
getPlayerCount
()
<
tmp
->
maxPlayers
))
result
.
append
(
tmp
);
tmp
->
mutex
->
unlock
();
}
return
result
;
}
...
...
@@ -120,7 +116,6 @@ bool Server::checkGamePassword(int gameId, const QString &password)
{
ServerGame
*
tmp
;
if
((
tmp
=
getGame
(
gameId
)))
{
QMutexLocker
locker
(
tmp
->
mutex
);
if
((
!
tmp
->
getGameStarted
())
&&
(
!
tmp
->
password
.
compare
(
password
,
Qt
::
CaseSensitive
))
&&
(
tmp
->
getPlayerCount
()
<
tmp
->
maxPlayers
))
...
...
@@ -132,14 +127,12 @@ bool Server::checkGamePassword(int gameId, const QString &password)
void
Server
::
addClientToGame
(
int
gameId
,
ServerSocket
*
client
)
{
ServerGame
*
tmp
=
getGame
(
gameId
);
client
->
moveToThread
(
tmp
->
thread
());
tmp
->
addPlayer
(
client
);
}
void
Server
::
gameClos
ed
()
void
Server
::
gameClos
ing
()
{
qDebug
(
"Server::gameClosed"
);
ServerGameThread
*
t
=
qobject_cast
<
ServerGameThread
*>
(
sender
());
games
.
removeAt
(
games
.
indexOf
(
t
->
getGame
()));
delete
t
;
qDebug
(
"Server::gameClosing"
);
ServerGame
*
g
=
qobject_cast
<
ServerGame
*>
(
sender
());
games
.
removeAt
(
games
.
indexOf
(
g
));
}
servatrice/src/server.h
View file @
16cc20a6
...
...
@@ -35,8 +35,7 @@ class Server : public QTcpServer
private
slots
:
void
addGame
(
const
QString
description
,
const
QString
password
,
const
int
maxPlayers
,
ServerSocket
*
creator
);
void
addClientToGame
(
int
gameId
,
ServerSocket
*
client
);
void
gameCreated
(
ServerGame
*
_game
,
ServerSocket
*
_creator
);
void
gameClosed
();
void
gameClosing
();
public:
Server
(
QObject
*
parent
=
0
);
~
Server
();
...
...
servatrice/src/servergame.cpp
View file @
16cc20a6
...
...
@@ -24,13 +24,12 @@
ServerGame
::
ServerGame
(
ServerSocket
*
_creator
,
int
_gameId
,
QString
_description
,
QString
_password
,
int
_maxPlayers
,
QObject
*
parent
)
:
QObject
(
parent
),
gameStarted
(
false
),
rnd
(
0
),
creator
(
_creator
),
gameId
(
_gameId
),
description
(
_description
),
password
(
_password
),
maxPlayers
(
_maxPlayers
)
{
mutex
=
new
QMutex
(
QMutex
::
Recursive
);
}
ServerGame
::~
ServerGame
()
{
emit
gameClosing
();
delete
rnd
;
delete
mutex
;
qDebug
(
"ServerGame destructor"
);
}
...
...
@@ -41,14 +40,11 @@ bool ServerGame::getGameStarted()
int
ServerGame
::
getPlayerCount
()
{
QMutexLocker
locker
(
mutex
);
return
players
.
size
();
}
QStringList
ServerGame
::
getPlayerNames
()
{
QMutexLocker
locker
(
mutex
);
QStringList
result
;
QListIterator
<
ServerSocket
*>
i
(
players
);
while
(
i
.
hasNext
())
{
...
...
@@ -71,8 +67,6 @@ ServerSocket *ServerGame::getPlayer(int player_id)
void
ServerGame
::
msg
(
const
QString
&
s
)
{
QMutexLocker
locker
(
mutex
);
QListIterator
<
ServerSocket
*>
i
(
players
);
while
(
i
.
hasNext
())
i
.
next
()
->
msg
(
s
);
...
...
@@ -88,8 +82,6 @@ void ServerGame::broadcastEvent(const QString &cmd, ServerSocket *player)
void
ServerGame
::
startGameIfReady
()
{
QMutexLocker
locker
(
mutex
);
if
(
players
.
size
()
<
maxPlayers
)
return
;
for
(
int
i
=
0
;
i
<
players
.
size
();
i
++
)
...
...
@@ -112,8 +104,6 @@ void ServerGame::startGameIfReady()
void
ServerGame
::
addPlayer
(
ServerSocket
*
player
)
{
QMutexLocker
locker
(
mutex
);
int
max
=
-
1
;
QListIterator
<
ServerSocket
*>
i
(
players
);
while
(
i
.
hasNext
())
{
...
...
@@ -134,12 +124,10 @@ void ServerGame::addPlayer(ServerSocket *player)
void
ServerGame
::
removePlayer
(
ServerSocket
*
player
)
{
QMutexLocker
locker
(
mutex
);
players
.
removeAt
(
players
.
indexOf
(
player
));
broadcastEvent
(
"leave"
,
player
);
if
(
!
players
.
size
())
thread
()
->
quit
();
deleteLater
();
}
void
ServerGame
::
setActivePlayer
(
int
_activePlayer
)
...
...
servatrice/src/servergame.h
View file @
16cc20a6
...
...
@@ -20,8 +20,6 @@
#ifndef SERVERGAME_H
#define SERVERGAME_H
#include
<QThread>
#include
<QMutex>
#include
<QStringList>
class
ServerSocket
;
...
...
@@ -34,10 +32,11 @@ private:
bool
gameStarted
;
int
activePlayer
;
int
activePhase
;
signals:
void
gameClosing
();
public
slots
:
void
broadcastEvent
(
const
QString
&
event
,
ServerSocket
*
player
);
public:
QMutex
*
mutex
;
Random
*
rnd
;
ServerSocket
*
creator
;
int
gameId
;
...
...
servatrice/src/servergamethread.cpp
deleted
100644 → 0
View file @
8680bce5
#include
"servergamethread.h"
#include
"servergame.h"
ServerGameThread
::
ServerGameThread
(
int
_gameId
,
const
QString
_description
,
const
QString
_password
,
const
int
_maxPlayers
,
ServerSocket
*
_creator
,
QObject
*
parent
)
:
QThread
(
parent
),
gameId
(
_gameId
),
description
(
_description
),
password
(
_password
),
maxPlayers
(
_maxPlayers
),
creator
(
_creator
),
game
(
0
)
{
}
ServerGameThread
::~
ServerGameThread
()
{
if
(
game
)
delete
game
;
}
void
ServerGameThread
::
run
()
{
game
=
new
ServerGame
(
creator
,
gameId
,
description
,
password
,
maxPlayers
);
emit
gameCreated
(
game
,
creator
);
exec
();
}
servatrice/src/servergamethread.h
deleted
100644 → 0
View file @
8680bce5
#ifndef SERVERGAMETHREAD_H
#define SERVERGAMETHREAD_H
#include
<QThread>
#include
<QMutex>
class
ServerGame
;
class
ServerSocket
;
class
ServerGameThread
:
public
QThread
{
Q_OBJECT
signals:
void
gameCreated
(
ServerGame
*
_game
,
ServerSocket
*
creator
);
private:
int
gameId
;
QString
description
;
QString
password
;
int
maxPlayers
;
ServerSocket
*
creator
;
ServerGame
*
game
;
public:
ServerGameThread
(
int
_gameId
,
const
QString
_description
,
const
QString
_password
,
const
int
_maxPlayers
,
ServerSocket
*
_creator
,
QObject
*
parent
=
0
);
~
ServerGameThread
();
ServerGame
*
getGame
()
{
return
game
;
}
void
run
();
};
#endif
servatrice/src/serversocket.cpp
View file @
16cc20a6
...
...
@@ -254,14 +254,12 @@ ReturnMessage::ReturnCode ServerSocket::cmdListGames(const QList<QVariant> ¶
QStringList
result
;
while
(
gameListIterator
.
hasNext
())
{
ServerGame
*
tmp
=
gameListIterator
.
next
();
tmp
->
mutex
->
lock
();
result
<<
QString
(
"%1|%2|%3|%4|%5|%6"
).
arg
(
tmp
->
gameId
)
.
arg
(
tmp
->
description
)
.
arg
(
tmp
->
password
==
""
?
0
:
1
)
.
arg
(
tmp
->
getPlayerCount
())
.
arg
(
tmp
->
maxPlayers
)
.
arg
(
tmp
->
creator
->
PlayerName
);
tmp
->
mutex
->
unlock
();
}
remsg
->
sendList
(
result
);
return
ReturnMessage
::
ReturnOk
;
...
...
servatrice/src/version.h
View file @
16cc20a6
...
...
@@ -18,4 +18,4 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
const
char
*
VERSION_STRING
=
"Servatrice 0.200904
09
"
;
const
char
*
VERSION_STRING
=
"Servatrice 0.200904
16
"
;
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment