Source Code (Use browser search to find items of interest.)

Class Index

ksirtet'ClientNetMeeting (./kdegames/ksirtet/lib/meeting.h:108)

class ClientNetMeeting : public NetMeeting
{
 Q_OBJECT
		
 public:
	ClientNetMeeting(const cId &id,
					 const RemoteHostData &rhd, MPOptionWidget *options,
					 QWidget *parent = 0, const char * name = 0);

 private slots:
	void textChanged(const QString &text);
	void typeChanged(MeetingCheckBox::Type);
	
 private:
	QValueList<BoardData> bds;
	
	void idFlag(uint);
	void newFlag(uint);
	void endFlag(uint);
	void delFlag(uint);
	void modTypeFlag(uint);
	void modTextFlag(uint);
	void modOptFlag(uint);
	void playFlag(uint);

	void writeToAll(uint i=0);
	void netError(uint, const QString &str);
};

ksirtet'ClientNetMeeting::ClientNetMeeting() (./kdegames/ksirtet/lib/meeting.cpp:443)

ClientNetMeeting::ClientNetMeeting(const cId &id,
		const RemoteHostData &rhd, MPOptionWidget *option,
	    QWidget *parent, const char * name)
: NetMeeting(id, rhd.socket, option, FALSE, parent, name), bds(rhd.bds)
{
	connect(sm[0]->notifier(), SIGNAL(activated(int)),
			SLOT(readNotifier(int)));
	players.append(NewPlayer); // server player
	
	// Send id to server (Id flag + Id struct)
	sm.commonWritingStream() << Id << id;
	writeToAll(); // what happens if there is a message box appearing before exec() call ??
}


ksirtet'ClientNetMeeting::netError() (./kdegames/ksirtet/lib/meeting.cpp:457)

void ClientNetMeeting::netError(uint, const QString &str)
{
	cleanReject(i18n("%1 server : aborting connection").arg(str));
}


ksirtet'ClientNetMeeting::writeToAll() (./kdegames/ksirtet/lib/meeting.cpp:462)

void ClientNetMeeting::writeToAll(uint)
{
	if ( !sm.writeCommon(0) ) writeError(0);
	sm.commonWritingStream().clear();
}


ksirtet'ClientNetMeeting::idFlag() (./kdegames/ksirtet/lib/meeting.cpp:468)

void ClientNetMeeting::idFlag(uint)
{
	checkAndSetState(0, NewPlayer, IdChecked);
	
	// read Id result (Id flag + Id struct)
	cId serverId;
	sm[0]->readingStream() >> serverId;
	CHECK_READ(0);
	
	// check result
	if ( !serverId.accepted() ) cleanReject(serverId.errorMessage(id));
	else {
		// send client info (New flag + GameData struct)
		sm.commonWritingStream() << New << bds;
		writeToAll();
	}
}


ksirtet'ClientNetMeeting::newFlag() (./kdegames/ksirtet/lib/meeting.cpp:486)

void ClientNetMeeting::newFlag(uint)
{
	if ( players[0]==IdChecked ) {
		ExtData ed;
		sm[0]->readingStream() >> ed;
		spl->setData(ed);
		players[0] = Accepted;
	} else {
		MeetingLineData pld;
		sm[0]->readingStream() >> pld;
		appendLine(pld, FALSE);
	}
	CHECK_READ(0);
}


ksirtet'ClientNetMeeting::modTextFlag() (./kdegames/ksirtet/lib/meeting.cpp:501)

void ClientNetMeeting::modTextFlag(uint)
{
	// receive new text from server (TextInfo struct)
	TextInfo ti;
	sm[0]->readingStream() >> ti;
	CHECK_READ(0);
	setText(ti);
}


ksirtet'ClientNetMeeting::modTypeFlag() (./kdegames/ksirtet/lib/meeting.cpp:510)

void ClientNetMeeting::modTypeFlag(uint)
{
	// receive new type from server (TypeInfo struct)
	TypeInfo ti;
	sm[0]->readingStream() >> ti;
	CHECK_READ(0);
	setType(ti);
}


ksirtet'ClientNetMeeting::delFlag() (./kdegames/ksirtet/lib/meeting.cpp:519)

void ClientNetMeeting::delFlag(uint)
{
	// receive client number (uint)
	uint k;
	sm[0]->readingStream() >> k;
	CHECK_READ(0);
	removeLine(k-1);
	message(i18n("Client %1 has left").arg(k));
}


ksirtet'ClientNetMeeting::textChanged() (./kdegames/ksirtet/lib/meeting.cpp:529)

void ClientNetMeeting::textChanged(const QString &text)
{
	// text changed : send to server (Mod_Text flag + QString)
	sm.commonWritingStream() << Mod_Text << text;
	writeToAll();
}


ksirtet'ClientNetMeeting::typeChanged() (./kdegames/ksirtet/lib/meeting.cpp:536)

void ClientNetMeeting::typeChanged(MeetingCheckBox::Type type)
{
	// type changed : send to server (Mod_Type flag + TCB)
	sm.commonWritingStream() << Mod_Type << type;
	writeToAll();
}


ksirtet'ClientNetMeeting::playFlag() (./kdegames/ksirtet/lib/meeting.cpp:543)

void ClientNetMeeting::playFlag(uint)
{
	// receive accept or reject (bool)
	Q_UINT8 i;
	sm[0]->readingStream() >> i;
	CHECK_READ(0);
	
	if (i) {
		sm.remove(0, FALSE); // do not close it
		socketRemoved = TRUE;
		accept();
	} else cleanReject(i18n("the game has begun without you\n"
							"(you have been excluded by the server)"));
}


ksirtet'ClientNetMeeting::modOptFlag() (./kdegames/ksirtet/lib/meeting.cpp:558)

void ClientNetMeeting::modOptFlag(uint)
{
	// read new option data
	ow->dataIn( sm[0]->readingStream() );
	CHECK_READ(0);
}


ksirtet'ClientNetMeeting::endFlag() (./kdegames/ksirtet/lib/meeting.cpp:565)

void ClientNetMeeting::endFlag(uint)
{
	// abort from server
	cleanReject(i18n("the server has aborted the game"));
}