#include <kgameprocess.h>
Inherits TQObject.
Signals | |
void | signalCommand (TQDataStream &inputStream, int msgid, int receiver, int sender) |
void | signalTurn (TQDataStream &stream, bool turn) |
void | signalInit (TQDataStream &stream, int userid) |
Public Member Functions | |
KGameProcess () | |
~KGameProcess () | |
bool | exec (int argc, char *argv[]) |
bool | terminate () const |
void | setTerminate (bool b) |
void | sendMessage (TQDataStream &stream, int msgid, TQ_UINT32 receiver=0) |
void | sendSystemMessage (TQDataStream &stream, int msgid, TQ_UINT32 receiver=0) |
KRandomSequence * | random () |
Protected Slots | |
void | receivedMessage (const TQByteArray &receiveBuffer) |
Protected Member Functions | |
void | processArgs (int argc, char *argv[]) |
Protected Attributes | |
bool | mTerminate |
KMessageFilePipe * | mMessageIO |
Detailed Description
This is the process class used on the computer player side to communicate with its counterpart TDEProcessIO class.
Using these two classes will give fully transparent communication via TQDataStreams.
Definition at line 42 of file kgameprocess.h.
Constructor & Destructor Documentation
◆ KGameProcess()
KGameProcess::KGameProcess | ( | ) |
Creates a KGameProcess class.
Done only in the computer player. To activate the communication you have to call the exec function of this class which will listen to the communication and emit signals to notify you of any incoming messages. Note: This function will only return after you set setTerminate(true) in one of the received signals. So you can not do any computer calculation after the exec function. Instead you react on the signals which are emitted after a message is received and perform the calculations there! Example:
Definition at line 46 of file kgameprocess.cpp.
◆ ~KGameProcess()
KGameProcess::~KGameProcess | ( | ) |
Destruct the process.
Definition at line 64 of file kgameprocess.cpp.
Member Function Documentation
◆ exec()
bool KGameProcess::exec | ( | int | argc, |
char * | argv[] | ||
) |
Enters the event loop of the computer process.
Does only return on setTerminate(true)!
Definition at line 76 of file kgameprocess.cpp.
◆ processArgs()
|
protected |
processes the command line argumens to set up the computer player Pass the argumens exactely as given by main()
Definition at line 115 of file kgameprocess.cpp.
◆ random()
|
inline |
Returns a pointer to a KRandomSequence.
You can generate random numbers via e.g.
- Returns
- KRandomSequence pointer
Definition at line 143 of file kgameprocess.h.
◆ receivedMessage
|
protectedslot |
A message is received via the interprocess connection.
The appropriate signals are called.
Definition at line 132 of file kgameprocess.cpp.
◆ sendMessage()
void KGameProcess::sendMessage | ( | TQDataStream & | stream, |
int | msgid, | ||
TQ_UINT32 | receiver = 0 |
||
) |
Sends a message to the corresponding KGameIO device.
Works like the sendSystemMessage but for user id's
- Parameters
-
stream the TQDataStream containing the message msgid the message id for the message receiver unused
Definition at line 110 of file kgameprocess.cpp.
◆ sendSystemMessage()
void KGameProcess::sendSystemMessage | ( | TQDataStream & | stream, |
int | msgid, | ||
TQ_UINT32 | receiver = 0 |
||
) |
Sends a system message to the corresonding KGameIO device.
This will normally be either a performed move or a query (IdProcessQuery). The query option is a way to communicate with the KGameIO at the other side and e.g. retrieve some game relevant data from here. Exmaple for a query:
- Parameters
-
stream the TQDataStream containing the message msgid the message id for the message receiver unused
Definition at line 91 of file kgameprocess.cpp.
◆ setTerminate()
|
inline |
Set this to true if the computer process should end, ie leave its exec function.
- Parameters
-
b true for exit the exec function
Definition at line 100 of file kgameprocess.h.
◆ signalCommand
|
signal |
The generic communication signal.
You have to connect to this signal to generate a valid computer response onto arbitrary messages. All signals but IdIOAdded and IdTurn end up here! Example:
- Parameters
-
inputStream the incoming data stream msgid the message id of the message which got transmitted to the computer receiver the id of the receiver sender the id of the sender
◆ signalInit
|
signal |
This signal is emmited when the process is initialized, i.e.
added to a KPlayer. Initial initialisation can be performed here be reacting to the TDEProcessIO signal signalIOAdded and retrieving the data here from the stream. It works just as the signalTurn() but is only send when the player is added to the game, i.e. it needs some initialization data
- Parameters
-
stream The datastream which contains user data userid The userId of the player. (Careful to rely on it yet)
◆ signalTurn
|
signal |
This signal is emmited if the computer player should perform a turn.
Calculations can be made here and the move can then be send back with sendSystemMessage with the message id KGameMessage::IdPlayerInput. These must provide a move which complies to your other move syntax as e.g. produces by keyboard or mouse input. Additonal data which have been written into the stream from the ProcessIO's signal signalPrepareTurn can be retrieved from the stream here. Example:
- Parameters
-
stream The datastream which contains user data turn True or false whether the turn is activated or deactivated
◆ terminate()
|
inline |
Should the computer process leave its exec function? Activated if you setTerminate(true);.
- Returns
- true/false
Definition at line 92 of file kgameprocess.h.
Member Data Documentation
◆ mMessageIO
|
protected |
Definition at line 237 of file kgameprocess.h.
◆ mTerminate
|
protected |
Definition at line 236 of file kgameprocess.h.
The documentation for this class was generated from the following files: