You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
5.1 KiB
140 lines
5.1 KiB
/***************************************************************************
|
|
io_internet.h - description
|
|
-------------------
|
|
begin : Thu Aug 16 2001
|
|
copyright : (C) 2003 by Troy Corbin Jr.
|
|
email : tcorbin@users.sourceforge.net
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#ifndef IO_INTERNET_H
|
|
#define IO_INTERNET_H
|
|
|
|
/* Local */
|
|
#include "definitions.h"
|
|
#include "io_base.h"
|
|
#include "match_param.h"
|
|
#include "command.h"
|
|
|
|
/* Tabs */
|
|
#include "tabmanager.h"
|
|
#include "console.h"
|
|
#include "challenge_graph.h"
|
|
#include "tab_seeklist.h"
|
|
|
|
class KSocket;
|
|
class KProcess;
|
|
class resource;
|
|
class core;
|
|
class dlg_login;
|
|
class dlg_challenge;
|
|
|
|
#include <tqfile.h>
|
|
|
|
/**
|
|
*@author Troy Corbin Jr / Alexander Wels.
|
|
*/
|
|
|
|
struct MatchRecord
|
|
{
|
|
int knightsID;
|
|
int serverID;
|
|
bool observing;
|
|
bool examining;
|
|
bool finished;
|
|
};
|
|
|
|
const int READ_BUFFER_SIZE = 64 * 1024; /* 64k is max ip packet size */
|
|
|
|
const int LOGIN_STAGE_NAME = 1;
|
|
const int LOGIN_STAGE_PASSWORD = 2;
|
|
const int LOGIN_STAGE_LOGGED_IN = 3;
|
|
|
|
const unsigned int NORMAL_MODE = 1;
|
|
const unsigned int UPDATE_SOUGHT_MODE = 2;
|
|
const unsigned int NEW_GAME_MODE = 3;
|
|
const unsigned int OBSERVE_GAME_MODE = 4;
|
|
const unsigned int CHALLENGE_MODE = 5;
|
|
const unsigned int PARSE_MOVE_LIST_MODE = 6;
|
|
|
|
const unsigned int PARSE12_MODE_NEW = 1;
|
|
const unsigned int PARSE12_MODE_MOVE = 2;
|
|
|
|
typedef TQMap<TQWidget *, TQWidget *> TabMap;
|
|
|
|
class io_internet : public io_base
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
io_internet(TQWidget *parent = NULL, resource *Rsrc = NULL);
|
|
~io_internet();
|
|
|
|
public slots:
|
|
virtual void recvCMD(const Command& command);
|
|
void readCommand(KSocket *);
|
|
void sendUserName(void);
|
|
void sendPassword(void);
|
|
void send(const TQString&);
|
|
void nullifyChallenge( void );
|
|
void acceptChallenge( void );
|
|
void declineChallenge( void );
|
|
void processSeekTimer( void );
|
|
void connectToServer( void );
|
|
void selfDestruct( void );
|
|
void setUserInfo(TQString userName, TQString passWord);
|
|
signals:
|
|
virtual void sendCMD(const Command& command);
|
|
void setLastPrivateSource( const TQString& );
|
|
void setLastChannelSource( const TQString& );
|
|
|
|
protected:
|
|
void parseLine(TQString command);
|
|
void parseLoginData(TQString command);
|
|
void writeToConsole(TQString text, TQString tag);
|
|
void updateSoughtList(TQString text);
|
|
void parseStyle12(TQString line, const unsigned int mode);
|
|
void sendUserSettings(void);
|
|
void parseMoveList(TQString data);
|
|
void sendEndOfGameCommand(TQString line);
|
|
private:
|
|
|
|
dlg_login *loginDlg;
|
|
dlg_challenge *challenge;
|
|
|
|
/* These are used to handle the automagic seek command */
|
|
TQTimer *seekTimer;
|
|
|
|
/* These are used for the connection & logon */
|
|
TQFile *Log;
|
|
KSocket *socket;
|
|
KProcess *myTimeseal;
|
|
struct serverResource *myServer;
|
|
int loginStage;
|
|
unsigned int parseMode;
|
|
TQString lastTag;
|
|
int ficsMoveListNumber;
|
|
TQString lineBuffer;
|
|
bool connected;
|
|
TQString userName;
|
|
TQString passWord;
|
|
|
|
/* communication with the server */
|
|
TQStringList command_list; /* this is a temp buffer while waiting for the movelist */
|
|
bool waiting_for_move_list;
|
|
TQMap<match_param *, int> fics_ids;
|
|
TQMap<int, int> fics_to_knights; /* maps fics id's to knights id's */
|
|
TabMap myTabList; /* maintains the list of the tabs currently owned by this io_internet */
|
|
TQValueList<Command> myCommandBuffer; /* this is a buffer for all the commands io_internet received while not connected to a server */
|
|
};
|
|
|
|
#endif
|