本文整理汇总了C++中ConnectionSettings::setServer方法的典型用法代码示例。如果您正苦于以下问题:C++ ConnectionSettings::setServer方法的具体用法?C++ ConnectionSettings::setServer怎么用?C++ ConnectionSettings::setServer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConnectionSettings
的用法示例。
在下文中一共展示了ConnectionSettings::setServer方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleReconnect
void ConnectionManager::handleReconnect(Server* server)
{
if (!Preferences::self()->autoReconnect() || m_overrideAutoReconnect) return;
ConnectionSettings settings = server->getConnectionSettings();
uint reconnectCount = Preferences::self()->reconnectCount();
// For server groups, one iteration over their server list shall count as one
// connection attempt.
if (settings.serverGroup())
reconnectCount = reconnectCount * settings.serverGroup()->serverList().size();
if (reconnectCount == 0 || settings.reconnectCount() < reconnectCount)
{
if (settings.serverGroup() && settings.serverGroup()->serverList().size() > 1)
{
Konversation::ServerList serverList = settings.serverGroup()->serverList();
int index = serverList.indexOf(settings.server());
int size = serverList.size();
if (index == size - 1 || index == -1)
settings.setServer(serverList[0]);
else if (index < size - 1)
settings.setServer(serverList[index+1]);
server->setConnectionSettings(settings);
server->getStatusView()->appendServerMessage(i18n("Info"),
i18np(
"Trying to connect to %2 (port <numid>%3</numid>) in 1 second.",
"Trying to connect to %2 (port <numid>%3</numid>) in %1 seconds.",
Preferences::self()->reconnectDelay(),
settings.server().host(),
QString::number(settings.server().port())));
}
else
{
server->getStatusView()->appendServerMessage(i18n("Info"),
i18np(
"Trying to reconnect to %2 (port <numid>%3</numid>) in 1 second.",
"Trying to reconnect to %2 (port <numid>%3</numid>) in %1 seconds.",
Preferences::self()->reconnectDelay(),
settings.server().host(),
QString::number(settings.server().port())));
}
server->getConnectionSettings().incrementReconnectCount();
server->connectToIRCServerIn(Preferences::self()->reconnectDelay());
}
else
{
server->getConnectionSettings().setReconnectCount(0);
server->getStatusView()->appendServerMessage(i18n("Error"), i18n("Reconnection attempts exceeded."));
}
}
示例2: connectTo
void ConnectionManager::connectTo(Konversation::ConnectionFlag flag, int serverGroupId)
{
ConnectionSettings settings;
Konversation::ServerGroupSettingsPtr serverGroup;
serverGroup = Preferences::serverGroupById(serverGroupId);
if (serverGroup)
{
settings.setServerGroup(serverGroup);
if (serverGroup->serverList().size() > 0)
settings.setServer(serverGroup->serverList()[0]);
}
connectTo(flag, settings);
}
示例3: decodeAddress
void ConnectionManager::decodeAddress(const QString& address, ConnectionSettings& settings,
bool checkIfServerGroup)
{
QString host;
QString port = "6667";
// Full-length IPv6 address with port
// Example: RFC 2732 notation: [2001:0DB8:0000:0000:0000:0000:1428:57ab]:6666
// Example: Non-RFC 2732 notation: 2001:0DB8:0000:0000:0000:0000:1428:57ab:6666
if (address.count(':')==8)
{
host = address.section(':',0,-2).remove('[').remove(']');
port = address.section(':',-1);
}
// Full-length IPv6 address without port or not-full-length IPv6 address with port
// Example: Without port, RFC 2732 notation: [2001:0DB8:0000:0000:0000:0000:1428:57ab]
// Example: Without port, Non-RFC 2732 notation: 2001:0DB8:0000:0000:0000:0000:1428:57ab
// Example: With port, RFC 2732 notation: [2001:0DB8::1428:57ab]:6666
else if (address.count(':')>=4)
{
// Last segment does not end with ], but the next to last does;
// Assume not-full-length IPv6 address with port
// Example: [2001:0DB8::1428:57ab]:6666
if (address.section(':',0,-2).endsWith(']') && !address.section(':',-1).endsWith(']'))
{
host = address.section(':',0,-2).remove('[').remove(']');
port = address.section(':',-1);
}
else
{
QString addressCopy = address;
host = addressCopy.remove('[').remove(']');
}
}
// IPv4 address or ordinary hostname with port
// Example: IPv4 address with port: 123.123.123.123:6666
// Example: Hostname with port: irc.bla.org:6666
else if (address.count(':')==1)
{
host = address.section(':',0,-2);
port = address.section(':',-1);
}
else
host = address;
// Try to assign server group.
if (checkIfServerGroup && Preferences::isServerGroup(host))
{
// If host is found to be the name of a server group.
int serverGroupId = Preferences::serverGroupIdsByName(host).first();
Konversation::ServerGroupSettingsPtr serverGroup;
serverGroup = Preferences::serverGroupById(serverGroupId);
settings.setServerGroup(serverGroup);
if (serverGroup->serverList().size() > 0)
settings.setServer(serverGroup->serverList()[0]);
}
else
{
QList<Konversation::ServerGroupSettingsPtr> groups = Preferences::serverGroupsByServer(host);
if (!groups.isEmpty())
{
// If the host is found to be part of a server group's server list.
Konversation::ServerGroupSettingsPtr serverGroup = groups.first();
settings.setServerGroup(serverGroup);
}
Konversation::ServerSettings server;
server.setHost(host);
server.setPort(port.toInt());
settings.setServer(server);
}
}
示例4: decodeIrcUrl
void ConnectionManager::decodeIrcUrl(const QString& url, ConnectionSettings& settings)
{
if (!url.startsWith(QLatin1String("irc://")) && !url.startsWith(QLatin1String("ircs://"))) return;
QString mangledUrl = url;
mangledUrl.remove(QRegExp("^ircs?:/+"));
if (mangledUrl.isEmpty()) return;
// Parsing address and channel.
QStringList mangledUrlSegments;
mangledUrlSegments = mangledUrl.split('/', QString::KeepEmptyParts);
// Check for ",isserver".
if (mangledUrlSegments[0].contains(','))
{
QStringList addressSegments;
bool checkIfServerGroup = true;
addressSegments = mangledUrlSegments[0].split(',', QString::KeepEmptyParts);
if (addressSegments.filter("isserver").size() > 0)
checkIfServerGroup = false;
decodeAddress(addressSegments[0], settings, checkIfServerGroup);
}
else
decodeAddress(mangledUrlSegments[0], settings);
QString channel;
Konversation::ChannelSettings channelSettings;
// Grabbing channel from in front of potential ?key=value parameters.
if (mangledUrlSegments.size() > 1)
channel = mangledUrlSegments[1].section('?', 0, 0);
if (!channel.isEmpty())
{
// Add default prefix to channel if necessary.
if (!channel.contains(QRegExp("^[#+&]{1}")))
channel = '#' + channel;
channelSettings.setName(channel);
}
// Parsing ?key=value parameters.
QString parameterString;
if (mangledUrlSegments.size() > 1)
parameterString = mangledUrlSegments[1].section('?', 1);
if (parameterString.isEmpty() && mangledUrlSegments.size() > 2)
parameterString = mangledUrlSegments[2];
if (!parameterString.isEmpty())
{
QRegExp parameterCatcher;
parameterCatcher.setPattern("pass=([^&]+)");
if (parameterCatcher.indexIn(parameterString) != -1)
{
Konversation::ServerSettings server = settings.server();
server.setPassword(parameterCatcher.cap(1));
settings.setServer(server);
}
parameterCatcher.setPattern("key=([^&]+)");
if (parameterCatcher.indexIn(parameterString) != -1)
channelSettings.setPassword(parameterCatcher.cap(1));
}
// Assigning channel.
if (!channelSettings.name().isEmpty())
{
Konversation::ChannelList cl;
cl << channelSettings;
settings.setOneShotChannelList(cl);
}
// Override SSL setting state with directive from URL.
if (url.startsWith(QLatin1String("ircs://")))
{
Konversation::ServerSettings server = settings.server();
server.setSSLEnabled(true);
settings.setServer(server);
}
}