本文整理汇总了C++中CUser::GetClientConnectionMultiplexer方法的典型用法代码示例。如果您正苦于以下问题:C++ CUser::GetClientConnectionMultiplexer方法的具体用法?C++ CUser::GetClientConnectionMultiplexer怎么用?C++ CUser::GetClientConnectionMultiplexer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CUser
的用法示例。
在下文中一共展示了CUser::GetClientConnectionMultiplexer方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LogUser
/**
* LogUser
*
* Logs something in the bouncer's main log and also sends it to a specific user.
*
* @param User the user
* @param Format a format string
* @param ... additional parameters which are used by the format string
*/
void CCore::LogUser(CUser *User, const char *Format, ...) {
char *Out;
int Ret;
va_list marker;
bool DoneUser = false;
va_start(marker, Format);
Ret = vasprintf(&Out, Format, marker);
va_end(marker);
if (AllocFailed(Out)) {
return;
}
m_Log->WriteLine("%s", Out);
for (int i = 0; i < m_AdminUsers.GetLength(); i++) {
CUser *ThisUser = m_AdminUsers[i];
if (ThisUser->GetSystemNotices() && ThisUser->GetClientConnectionMultiplexer()) {
ThisUser->GetClientConnectionMultiplexer()->Privmsg(Out);
if (ThisUser == User) {
DoneUser = true;
}
}
}
if (!DoneUser && User->GetClientConnectionMultiplexer() != NULL) {
User->GetClientConnectionMultiplexer()->Privmsg(Out);
}
free(Out);
}
示例2: Log
/**
* Log
*
* Logs something in the bouncer's main log.
*
* @param Format a format string
* @param ... additional parameters which are used by the format string
*/
void CCore::Log(const char *Format, ...) {
char *Out;
int Ret;
va_list marker;
va_start(marker, Format);
Ret = vasprintf(&Out, Format, marker);
va_end(marker);
if (AllocFailed(Out)) {
return;
}
if (m_Log == NULL) {
fprintf(stderr, "%s\n", Out);
} else {
m_Log->WriteLine("%s", Out);
}
for (int i = 0; i < m_AdminUsers.GetLength(); i++) {
CUser *User = m_AdminUsers.Get(i);
if (User->GetSystemNotices() && User->GetClientConnectionMultiplexer() != NULL) {
User->GetClientConnectionMultiplexer()->Privmsg(Out);
}
}
free(Out);
}
示例3: NickCatchTimer
/**
* NickCatchTimer
*
* Used to regain a user's nickname
*
* @param Now current time
* @param IRCConnection irc connection
*/
bool NickCatchTimer(time_t Now, void *IRCConnection) {
CIRCConnection *IRC = (CIRCConnection *)IRCConnection;
CUser *Owner = IRC->GetOwner();
const char *AwayNick;
if (Owner != NULL) {
AwayNick = IRC->GetOwner()->GetAwayNick();
} else {
AwayNick = NULL;
}
if (Owner && Owner->GetClientConnectionMultiplexer() != NULL) {
IRC->m_NickCatchTimer = NULL;
return false;
}
if (IRC->GetCurrentNick() != NULL && AwayNick != NULL && strcmp(IRC->GetCurrentNick(), AwayNick) != 0) {
IRC->WriteLine("NICK %s", AwayNick);
}
IRC->m_NickCatchTimer = NULL;
return false;
}
示例4: ParseLine
/**
* ParseLine
*
* Tokenizes, parses and processes a line which was sent by the IRC server.
*
* @param Line the line
*/
void CIRCConnection::ParseLine(const char *Line) {
const char *RealLine = Line;
char *Out;
if (GetOwner() == NULL) {
return;
}
if (Line[0] == ':') {
RealLine = Line + 1;
} else {
RealLine = Line;
}
tokendata_t Args = ArgTokenize2(RealLine);
const char **argv = ArgToArray2(Args);
int argc = ArgCount2(Args);
if (argv == NULL) {
g_Bouncer->Log("ArgToArray2 returned NULL. Could not parse line (%s).", Line);
return;
}
if (ParseLineArgV(argc, argv)) {
if (strcasecmp(argv[0], "ping") == 0 && argc > 1) {
int rc = asprintf(&Out, "PONG :%s", argv[1]);
if (!RcFailed(rc)) {
m_QueueHigh->QueueItem(Out);
free(Out);
}
if (m_State != State_Connected) {
m_State = State_Pong;
if (GetOwner()->GetClientConnectionMultiplexer() == NULL) {
WriteUnformattedLine("VERSION");
}
}
} else {
CUser *User = GetOwner();
if (User) {
CClientConnection *Client = User->GetClientConnectionMultiplexer();
if (Client != NULL) {
if (argc > 2 && strcasecmp(argv[1], "303") == 0) {
Client->WriteLine("%s -sBNC", Line);
} else {
Client->WriteUnformattedLine(Line);
}
}
}
}
}
#ifdef _WIN32
OutputDebugString(Line);
OutputDebugString("\n");
#endif
//puts(Line);
ArgFreeArray(argv);
}