%PDF- %PDF-
| Direktori : /data/old/usr/local/include/znc/ |
| Current File : //data/old/usr/local/include/znc/Nick.h |
/*
* Copyright (C) 2004-2018 ZNC, see the NOTICE file for details.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ZNC_NICK_H
#define ZNC_NICK_H
#include <znc/zncconfig.h>
#include <znc/ZNCString.h>
#include <vector>
// Forward Decl
class CIRCNetwork;
class CChan;
// !Forward Decl
class CNick {
public:
CNick();
CNick(const CString& sNick);
~CNick();
CNick(const CNick&) = default;
CNick& operator=(const CNick&) = default;
void Reset();
void Parse(const CString& sNickMask);
CString GetHostMask() const;
size_t GetCommonChans(std::vector<CChan*>& vChans,
CIRCNetwork* pNetwork) const;
bool NickEquals(const CString& nickname) const;
// Setters
void SetNetwork(CIRCNetwork* pNetwork);
void SetNick(const CString& s);
void SetIdent(const CString& s);
void SetHost(const CString& s);
/// e.g. '@' for chanop.
bool AddPerm(char cPerm);
/// e.g. '@' for chanop.
bool RemPerm(char cPerm);
// !Setters
// Getters
/// e.g. '@' for chanop.
CString GetPermStr() const;
/// e.g. '@' for chanop.
char GetPermChar() const;
/// e.g. '@' for chanop.
bool HasPerm(char cPerm) const;
const CString& GetNick() const;
const CString& GetIdent() const;
const CString& GetHost() const;
CString GetNickMask() const;
// !Getters
void Clone(const CNick& SourceNick);
private:
protected:
CString m_sChanPerms;
CIRCNetwork* m_pNetwork;
CString m_sNick;
CString m_sIdent;
CString m_sHost;
};
#endif // !ZNC_NICK_H