ZNC  trunk
Nick.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2004-2024 ZNC, see the NOTICE file for details.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef ZNC_NICK_H
18 #define ZNC_NICK_H
19 
20 #include <znc/zncconfig.h>
21 #include <znc/ZNCString.h>
22 #include <vector>
23 
24 // Forward Decl
25 class CIRCNetwork;
26 class CChan;
27 // !Forward Decl
28 
29 class CNick {
30  public:
31  CNick();
32  CNick(const CString& sNick);
33  ~CNick();
34 
35  CNick(const CNick&) = default;
36  CNick& operator=(const CNick&) = default;
37 
38  void Reset();
39  void Parse(const CString& sNickMask);
41  size_t GetCommonChans(std::vector<CChan*>& vChans,
42  CIRCNetwork* pNetwork) const;
43  bool NickEquals(const CString& nickname) const;
44 
45  // Setters
46  void SetNetwork(CIRCNetwork* pNetwork);
47  void SetNick(const CString& s);
48  void SetIdent(const CString& s);
49  void SetHost(const CString& s);
51  bool AddPerm(char cPerm);
53  bool RemPerm(char cPerm);
54  // !Setters
55 
56  // Getters
60  char GetPermChar() const;
62  bool HasPerm(char cPerm) const;
63  const CString& GetNick() const;
64  const CString& GetIdent() const;
65  const CString& GetHost() const;
67  // !Getters
68 
69  void Clone(const CNick& SourceNick);
70 
71  private:
72  protected:
78 };
79 
80 #endif // !ZNC_NICK_H
Definition: Chan.h:35
Definition: IRCNetwork.h:40
Definition: Nick.h:29
CString m_sNick
Definition: Nick.h:75
CNick(const CNick &)=default
CNick & operator=(const CNick &)=default
bool HasPerm(char cPerm) const
e.g. '@' for chanop.
CString m_sIdent
Definition: Nick.h:76
bool AddPerm(char cPerm)
e.g. '@' for chanop.
void SetIdent(const CString &s)
CString m_sHost
Definition: Nick.h:77
void SetNick(const CString &s)
CString m_sChanPerms
Definition: Nick.h:73
const CString & GetIdent() const
void Parse(const CString &sNickMask)
void SetHost(const CString &s)
char GetPermChar() const
e.g. '@' for chanop.
void SetNetwork(CIRCNetwork *pNetwork)
const CString & GetHost() const
CString GetHostMask() const
void Clone(const CNick &SourceNick)
size_t GetCommonChans(std::vector< CChan * > &vChans, CIRCNetwork *pNetwork) const
const CString & GetNick() const
CString GetPermStr() const
e.g. '@' for chanop.
CIRCNetwork * m_pNetwork
Definition: Nick.h:74
CNick(const CString &sNick)
CString GetNickMask() const
bool NickEquals(const CString &nickname) const
bool RemPerm(char cPerm)
e.g. '@' for chanop.
void Reset()
String class that is used inside ZNC.
Definition: ZNCString.h:68