• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdegames API Reference
  • KDE Home
  • Contact Us
 

libkdegames/libkdegamesprivate/kgame

Signals | Public Member Functions | Protected Slots | Protected Member Functions | List of all members
KGameProcessIO Class Reference

#include <KGame/KGameIO>

Inheritance diagram for KGameProcessIO:
Inheritance graph
[legend]

Signals

void signalIOAdded (KGameIO *game, QDataStream &stream, KPlayer *p, bool *send)
 
void signalProcessQuery (QDataStream &stream, KGameProcessIO *me)
 
void signalReceivedStderr (QString msg)
 
- Signals inherited from KGameIO
void signalPrepareTurn (QDataStream &stream, bool turn, KGameIO *io, bool *send)
 

Public Member Functions

 KGameProcessIO (const QString &name)
 
virtual ~KGameProcessIO ()
 
void initIO (KPlayer *p)
 
virtual void notifyTurn (bool turn)
 
int rtti () const
 
void sendMessage (QDataStream &stream, int msgid, quint32 receiver, quint32 sender)
 
void sendSystemMessage (QDataStream &stream, int msgid, quint32 receiver, quint32 sender)
 
- Public Member Functions inherited from KGameIO
 KGameIO ()
 
 KGameIO (KPlayer *)
 
virtual ~KGameIO ()
 
void Debug ()
 
KGame * game () const
 
KPlayer * player () const
 
bool sendInput (QDataStream &stream, bool transmit=true, quint32 sender=0)
 
void setPlayer (KPlayer *p)
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
 QObject (QObject *parent, const char *name)
 
virtual  ~QObject ()
 
bool blockSignals (bool block)
 
QObject * child (const char *objName, const char *inheritsClass, bool recursiveSearch) const
 
const QObjectList & children () const
 
const char * className () const
 
bool connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const QObject *receiver, const char *method)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method)
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArray > dynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
T findChild (const QString &name) const
 
QList< T > findChildren (const QRegExp &regExp) const
 
QList< T > findChildren (const QString &name) const
 
bool inherits (const char *className) const
 
void insertChild (QObject *object)
 
void installEventFilter (QObject *filterObj)
 
bool isA (const char *className) const
 
bool isWidgetType () const
 
void killTimer (int id)
 
virtual const QMetaObject * metaObject () const
 
void moveToThread (QThread *targetThread)
 
const char * name () const
 
const char * name (const char *defaultName) const
 
QString objectName () const
 
QObject * parent () const
 
QVariant property (const char *name) const
 
void removeChild (QObject *object)
 
void removeEventFilter (QObject *obj)
 
void setName (const char *name)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval)
 
QThread * thread () const
 

Protected Slots

void receivedMessage (const QByteArray &receiveBuffer)
 

Protected Member Functions

void sendAllMessages (QDataStream &stream, int msgid, quint32 receiver, quint32 sender, bool usermsg)
 
- Protected Member Functions inherited from QObject
bool checkConnectArgs (const char *signal, const QObject *object, const char *method)
 
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const char *signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const char *signal)
 
int receivers (const char *signal) const
 
QObject * sender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Additional Inherited Members

- Public Types inherited from KGameIO
enum  IOMode {
  GenericIO =1, KeyIO =2, MouseIO =4, ProcessIO =8,
  ComputerIO =16
}
 
- Static Public Member Functions inherited from QObject
bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Static Protected Member Functions inherited from QObject
QByteArray normalizeSignalSlot (const char *signalSlot)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

The KGameProcessIO class.

It is used to create a computer player via a separate process and communicate transparetly with it. Its counterpart is the KGameProcess class which needs to be used by the computer player. See its documentation for the definition of the computer player.

Definition at line 353 of file kgameio.h.

Constructor & Destructor Documentation

KGameProcessIO::KGameProcessIO ( const QString &  name)

Creates a computer player via a separate process.

The process name is given as fully qualified filename. Example:

KGameProcessIO *input;
input=new KGameProcessIO(executable_file);
connect(input,SIGNAL(signalPrepareTurn(QDataStream &,bool,KGameIO *,bool *)),
this,SLOT(slotPrepareTurn(QDataStream &,bool,KGameIO *,bool *)));
connect(input,SIGNAL(signalProcessQuery(QDataStream &,KGameProcessIO *)),
this,SLOT(slotProcessQuery(QDataStream &,KGameProcessIO *)));
Parameters
namethe filename of the process to start

Definition at line 302 of file kgameio.cpp.

KGameProcessIO::~KGameProcessIO ( )
virtual

Deletes the process input devices.

Definition at line 330 of file kgameio.cpp.

Member Function Documentation

void KGameProcessIO::initIO ( KPlayer *  p)
virtual

Init this device by setting the player and e.g.

sending an init message to the device. Calling this function will emit the IOAdded signal on which you can react and initilise the computer player. This function is called automatically when adding the IO to a player.

Reimplemented from KGameIO.

Definition at line 351 of file kgameio.cpp.

void KGameProcessIO::notifyTurn ( bool  turn)
virtual

Notifies the IO device that the player's setTurn had been called Called by KPlayer.

You can react on the signalPrepareTurn to prepare a message for the process, i.e. either update it on the changes made to the game since the last turn or the initIO has been called or transmit your gamestatus now.

Parameters
turnis true/false

Reimplemented from KGameIO.

Definition at line 373 of file kgameio.cpp.

void KGameProcessIO::receivedMessage ( const QByteArray &  receiveBuffer)
protectedslot

Internal message handler to receive data from the process.

Definition at line 433 of file kgameio.cpp.

int KGameProcessIO::rtti ( ) const
virtual

The idendification of the IO.

Returns
ProcessIO

Implements KGameIO.

Definition at line 346 of file kgameio.cpp.

void KGameProcessIO::sendAllMessages ( QDataStream &  stream,
int  msgid,
quint32  receiver,
quint32  sender,
bool  usermsg 
)
protected

Internal ~ombined function for all message handling.

Definition at line 403 of file kgameio.cpp.

void KGameProcessIO::sendMessage ( QDataStream &  stream,
int  msgid,
quint32  receiver,
quint32  sender 
)

Send a message to the process.

This is analogous to the sendMessage commands of KGame. It will result in a signal of the computer player on which you can react in the process player.

Parameters
stream- the actual data
msgid- the id of the message
receiver- not used
sender- who send the message

Definition at line 398 of file kgameio.cpp.

void KGameProcessIO::sendSystemMessage ( QDataStream &  stream,
int  msgid,
quint32  receiver,
quint32  sender 
)

Send a system message to the process.

This is analogous to the sendMessage commands of KGame. It will result in a signal of the computer player on which you can react in the process player.

Parameters
stream- the actual data
msgid- the id of the message
receiver- not used
sender- who send the message

Definition at line 393 of file kgameio.cpp.

void KGameProcessIO::signalIOAdded ( KGameIO *  game,
QDataStream &  stream,
KPlayer *  p,
bool *  send 
)
signal

Signal generated when the computer player is added.

You can use this to communicated with the process and e.g. send initialisation information to the process.

Parameters
gamethe KGameIO object itself
streamthe stream into which the move will be written
pthe player itself
sendset this to false if no move should be generated
void KGameProcessIO::signalProcessQuery ( QDataStream &  stream,
KGameProcessIO *  me 
)
signal

A computer query message is received.

This is a 'dummy' message sent by the process if it needs to communicate with us. It is not forwarded over the network. Reacting to this message allows you to 'answer' questions of the process, e.g. sending addition data which the process needs to calculate a move.

Example:

void GameWindow::slotProcessQuery(QDataStream &stream,KGameProcessIO *reply)
{
int no;
stream >> no; // We assume the process sends us an integer question numner
if (no==1) // but YOU have to do this in the process player
{
QByteArray buffer;
QDataStream out(buffer,QIODevice::WriteOnly);
reply->sendSystemMessage(out,4242,0,0); // lets reply something...
}
}
void KGameProcessIO::signalReceivedStderr ( QString  msg)
signal

Text is received by the process on STDERR.

This is usually a debug string.

Parameters
msgThe text

The documentation for this class was generated from the following files:
  • kgameio.h
  • kgameio.cpp
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:18:54 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkdegames/libkdegamesprivate/kgame

Skip menu "libkdegames/libkdegamesprivate/kgame"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdegames API Reference

Skip menu "kdegames API Reference"
  • granatier
  • kapman
  • kblackbox
  • kgoldrunner
  • kigo
  • kmahjongg
  • KShisen
  • ksquares
  • libkdegames
  •   highscore
  •   libkdegamesprivate
  •     kgame
  • libkmahjongg
  • palapeli
  •   libpala

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal