1#ifndef _KVI_IRCCONNECTION_H_
2#define _KVI_IRCCONNECTION_H_
48class KviIrcNetworkData;
372 const QString & currentNetworkName()
const;
378 const QString & currentNickName()
const;
384 const QString & currentUserName()
const;
390 const QString & currentServerName()
const;
423 int getCommonChannels(
const QString & szNick, QString & szChansBuffer,
bool bAddEscapeSequences =
true);
461 void keepChannelsOpenAfterDisconnect();
467 void closeAllChannels();
473 void closeAllQueries();
527 KviQueryWindow * createQuery(
const QString & szNick, CreateQueryVisibilityMode eVisibilityMode = CreateQueryVisibilityFollowSettings);
551 void keepQueriesOpenAfterDisconnect();
560 void resurrectDeadQueries();
567 void restartLagMeter();
596 bool sendData(
const char * pcBuffer,
int iBuflen = -1);
623 bool sendFmtData(
const char * pcFmt, ...);
630 void clearOutputQueue(
bool bPrivateMessagesOnly);
636 unsigned int outputQueueSize();
647 void incomingMessage(
const char * pcMessage);
657 void incomingMessageNoFilter(
const char * pcMessage);
693 void setEncoding(
const QString & szEncoding);
703 QString decodeText(
const char * szText);
713 QByteArray encodeText(
const QString & szText);
727 void delayedStartNotifyList();
737 void resolveLocalHost();
739#ifdef COMPILE_SSL_SUPPORT
740 void handleFailedInitialStartTls();
741 bool trySTARTTLS(
bool bAppendPing);
742 void enableStartTlsSupport(
bool bEnable);
761 void useRealName(
const QString & szRealName);
767 void loginToIrcServer();
774 void joinChannels(
const std::vector<std::pair<QString, QString>> & lChannelsAndPasses);
779 void gatherChannelAndPasswordPairs(std::vector<std::pair<QString, QString>> & lChannelsAndPasses);
784 void gatherQueryNames(QStringList & lQueryNames);
796 QString pickNextLoginNickName(
bool bForceDefaultIfPrimaryNicknamesEmpty,
const QString & szBaseNickForRandomChoices, QString & szChoiceDescriptionBuffer);
806 void endOfMotdReceived();
815 void serverInfoReceived(
const QString & szServerName,
const QString & szUserModes,
const QString & szChanModes);
821 void handleAuthenticate(
KviCString & szResponse);
827 void handleInitialCapLs();
833 void handleFailedInitialCapLs();
839 void handleInitialCapAck();
845 void handleInitialCapNak();
851 void endInitialCapNegotiation();
858 void changeAwayState(
bool bAway);
869 void userInfoReceived(
const QString & szUserName,
const QString & szHostName);
876 void nickChange(
const QString & szNewNick);
884 bool changeUserMode(
char cMode,
bool bSet);
891 void loginComplete(
const QString & szNickName);
928 void linkAttemptFailed(
int iError);
934 void linkEstablished();
940 void linkTerminated();
947 void setupTextCodec();
953 void setupSrvCodec();
959 void unhighlightAllChannels();
965 void unhighlightAllQueries();
971 void restartNotifyList();
Helper functions for the QString class.
#define kvi_time_t
Definition KviTimeUtils.h:43
Definition KviCString.h:102
The class which manages a channel.
Definition KviChannelWindow.h:108
Definition KviConsoleWindow.h:74
Definition KviDataBuffer.h:31
The KviDnsResolver class.
Definition KviDnsResolver.h:90
Class which manages the list of identity profiles.
Definition KviIdentityProfileSet.h:45
Definition KviIrcConnectionAntiCtcpFloodData.h:31
Definition KviIrcConnectionAsyncWhoisData.h:64
Definition KviIrcConnectionNetsplitDetectorData.h:33
Class to enqueue commands to IRC server.
Definition KviIrcConnectionRequestQueue.h:48
Definition KviIrcConnectionServerInfo.h:300
Definition KviIrcConnectionStateData.h:41
Definition KviIrcConnectionStatistics.h:32
Definition KviIrcConnectionTarget.h:36
Definition KviIrcConnectionUserInfo.h:33
KviIrcConnectionAntiCtcpFloodData * m_pAntiCtcpFloodData
Definition KviIrcConnection.h:174
KviIrcConnectionNetsplitDetectorData * netsplitDetectorData() const
Returns a pointer to the KviIrcConnectionNetsplitDetectorData object.
Definition KviIrcConnection.h:301
friend class KviIrcServerParser
Definition KviIrcConnection.h:101
KviIrcConnectionAntiCtcpFloodData * antiCtcpFloodData() const
Returns a pointer to the KviIrcConnectionAntiCtcpFloodData object.
Definition KviIrcConnection.h:286
KviIrcUserDataBase * userDataBase() const
Returns a pointer to the big connection user database.
Definition KviIrcConnection.h:233
KviIrcConnectionRequestQueue * m_pRequestQueue
Definition KviIrcConnection.h:184
KviIrcConnectionAsyncWhoisData * asyncWhoisData() const
Returns a pointer to the KviIrcConnectionAsyncWhoisData object.
Definition KviIrcConnection.h:316
void awayStateChanged()
Emitted when the away state changes.
KviIrcConnectionUserInfo * m_pUserInfo
Definition KviIrcConnection.h:158
void nickNameChanged()
Emitted when the nickname changes.
KviLagMeter * lagMeter() const
Returns a pointer to the current KviLagMeter.
Definition KviIrcConnection.h:352
KviNotifyListManager * notifyListManager() const
Returns a pointer to the current KviNotifyListManager.
Definition KviIrcConnection.h:340
CreateQueryVisibilityMode
Definition KviIrcConnection.h:503
@ CreateQueryVisibilityMinimized
Definition KviIrcConnection.h:507
@ CreateQueryVisibilityFollowSettings
Definition KviIrcConnection.h:515
@ CreateQueryVisibilityVisible
Definition KviIrcConnection.h:511
KviIrcLink * link() const
Returns the underlying KviIrcLink object.
Definition KviIrcConnection.h:218
bool m_bIdentdAttached
Definition KviIrcConnection.h:147
KviIrcContext * m_pContext
Definition KviIrcConnection.h:144
friend class KviIrcLink
Definition KviIrcConnection.h:100
KviIrcConnectionServerInfo * serverInfo() const
Returns a pointer to the KviIrcConnectionServerInfo object.
Definition KviIrcConnection.h:260
KviIrcConnectionServerInfo * m_pServerInfo
Definition KviIrcConnection.h:160
std::vector< KviChannelWindow * > m_pChannelList
Definition KviIrcConnection.h:164
KviIrcConnectionTarget * target() const
Returns the target of this connection.
Definition KviIrcConnection.h:210
KviIrcLink * m_pLink
Definition KviIrcConnection.h:151
QTimer * m_pNotifyListTimer
Definition KviIrcConnection.h:170
KviIrcConnectionAsyncWhoisData * m_pAsyncWhoisData
Definition KviIrcConnection.h:176
QTextCodec * m_pTextCodec
Definition KviIrcConnection.h:183
void chanListChanged()
Emitted when the channels list change.
State
The possible "high level" states of this connection.
Definition KviIrcConnection.h:136
@ Connected
Definition KviIrcConnection.h:139
@ Idle
Definition KviIrcConnection.h:137
@ Connecting
Definition KviIrcConnection.h:138
friend class KviIrcContext
Definition KviIrcConnection.h:99
friend class KviConsoleWindow
Definition KviIrcConnection.h:98
KviNotifyListManager * m_pNotifyListManager
Definition KviIrcConnection.h:169
KviIrcConnectionTarget * m_pTarget
Definition KviIrcConnection.h:149
KviConsoleWindow * m_pConsole
Definition KviIrcConnection.h:143
void userModeChanged()
Emitted when the user modes change.
void channelUnregistered(KviChannelWindow *pChan)
Emitted when we unregister a channel.
QTextCodec * textCodec() const
Returns a pointer to the current global codec for outbound text.
Definition KviIrcConnection.h:670
KviIrcConnectionRequestQueue * requestQueue() const
Returns a pointer to the current KviIrcConnectionRequestQueue.
Definition KviIrcConnection.h:358
std::vector< KviQueryWindow * > m_pQueryList
Definition KviIrcConnection.h:165
KviIrcConnection(KviIrcContext *pContext, KviIrcConnectionTarget *pTarget, KviUserIdentity *pIdentity)
Creates a KviIrcConnection object.
Definition KviIrcConnection.cpp:80
KviIrcConnectionStatistics * statistics() const
Returns a pointer to the KviIrcConnectionStatistics object.
Definition KviIrcConnection.h:331
KviLagMeter * m_pLagMeter
Definition KviIrcConnection.h:172
KviIrcConnectionStateData * m_pStateData
Definition KviIrcConnection.h:162
KviIrcConnectionStateData * stateData() const
Returns a pointer to the KviIrcConnectionStateData object.
Definition KviIrcConnection.h:274
State state() const
Returns the current state of the connection.
Definition KviIrcConnection.h:224
KviConsoleWindow * console() const
Returns a pointer to the owning console.
Definition KviIrcConnection.h:192
State m_eState
Definition KviIrcConnection.h:146
std::vector< KviQueryWindow * > & queryList()
Returns the list of the currently open queries.
Definition KviIrcConnection.h:497
KviIrcConnectionUserInfo * userInfo() const
Returns a pointer to the KviIrcConnectionUserInfo object.
Definition KviIrcConnection.h:246
QTextCodec * serverCodec() const
Returns a pointer to the current global codec for inbound data.
Definition KviIrcConnection.h:679
KviIrcContext * context() const
Returns a pointer to the owning KviIrcContext.
Definition KviIrcConnection.h:200
KviIrcConnectionNetsplitDetectorData * m_pNetsplitDetectorData
Definition KviIrcConnection.h:175
void channelRegistered(KviChannelWindow *pChan)
Emitted when we register a channel.
QTextCodec * m_pSrvCodec
Definition KviIrcConnection.h:182
KviIrcUserDataBase * m_pUserDataBase
Definition KviIrcConnection.h:167
std::vector< KviChannelWindow * > & channelList()
Returns the list of the channels bound to the current connection.
Definition KviIrcConnection.h:366
KviDnsResolver * m_pLocalhostDns
Definition KviIrcConnection.h:180
std::unique_ptr< KviIrcConnectionStatistics > m_pStatistics
Definition KviIrcConnection.h:178
KviUserIdentity * m_pUserIdentity
Definition KviIrcConnection.h:155
Definition KviIrcContext.h:60
Middle stack class for IRC connection.
Definition KviIrcLink.h:56
The class which manages the irc servers.
Definition KviIrcServer.h:52
This class is the lowest level of the KVIrc networking stack.
Definition KviIrcSocket.h:75
The class which manages the user database.
Definition KviIrcUserDataBase.h:47
Definition KviLagMeter.h:45
Definition KviMainWindow.h:58
Definition KviNotifyList.h:43
The class which manages a query.
Definition KviQueryWindow.h:50
User identity handling class.
Definition KviUserIdentity.h:45
#define q
Definition detector.cpp:82
This file contains compile time settings.
#define KVIRC_API
Definition kvi_settings.h:127