summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bots.cpp4
-rw-r--r--src/channels.cpp8
-rw-r--r--src/command.cpp2
-rw-r--r--src/config.cpp2
-rw-r--r--src/memoserv.cpp2
-rw-r--r--src/modes.cpp4
-rw-r--r--src/nickalias.cpp2
-rw-r--r--src/nickcore.cpp2
-rw-r--r--src/operserv.cpp4
-rw-r--r--src/regchannel.cpp4
-rw-r--r--src/servers.cpp5
-rw-r--r--src/sockets.cpp4
-rw-r--r--src/users.cpp2
13 files changed, 29 insertions, 16 deletions
diff --git a/src/bots.cpp b/src/bots.cpp
index 90edc63be..e5b29fbf7 100644
--- a/src/bots.cpp
+++ b/src/bots.cpp
@@ -20,7 +20,9 @@ BotInfo *MemoServ = NULL;
BotInfo *NickServ = NULL;
BotInfo *OperServ = NULL;
-BotInfo::BotInfo(const Anope::string &nnick, const Anope::string &nuser, const Anope::string &nhost, const Anope::string &nreal) : User(nnick, nuser, nhost, ts6_uid_retrieve())
+static const Anope::string BotFlagString[] = { "1", "BI_CORE", "BI_PRIVATE", "" };
+
+BotInfo::BotInfo(const Anope::string &nnick, const Anope::string &nuser, const Anope::string &nhost, const Anope::string &nreal) : User(nnick, nuser, nhost, ts6_uid_retrieve()), Flags<BotFlag, BI_END>(BotFlagString)
{
this->realname = nreal;
this->server = Me;
diff --git a/src/channels.cpp b/src/channels.cpp
index 2a1bcbf1c..a4c920227 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -14,11 +14,13 @@
channel_map ChannelList;
+static const Anope::string ChannelFlagString[] = { "CH_PERSIST", "CH_SYNCING", "CH_LOGCHAN", "" };
+
/** Default constructor
* @param name The channel name
* @param ts The time the channel was created
*/
-Channel::Channel(const Anope::string &nname, time_t ts)
+Channel::Channel(const Anope::string &nname, time_t ts) : Flags<ChannelFlag, 3>(ChannelFlagString)
{
if (nname.empty())
throw CoreException("A channel without a name ?");
@@ -1227,10 +1229,12 @@ void MassChannelModes(BotInfo *bi, const Anope::string &modes)
}
}
+static const Anope::string EntryFlagString[] = { "ENTRYTYPE_NONE", "ENTRYTYPE_CIDR", "ENTRYTYPE_NICK_WILD", "ENTRYTYPE_NICK", "ENTRYTYPE_USER_WILD", "ENTRYTYPE_USER", "ENTRYTYPE_HOST_WILD", "ENTRYTYPE_HOST", "" };
+
/** Constructor
* @param _host A full nick!ident@host/cidr mask
*/
-Entry::Entry(const Anope::string &_host)
+Entry::Entry(const Anope::string &_host) : Flags<EntryType>(EntryFlagString)
{
this->SetFlag(ENTRYTYPE_NONE);
this->cidr_len = 0;
diff --git a/src/command.cpp b/src/command.cpp
index bbbaf0cb6..17de467e9 100644
--- a/src/command.cpp
+++ b/src/command.cpp
@@ -66,7 +66,7 @@ void CommandSource::Reply(const char *message, ...)
}
}
-Command::Command(const Anope::string &sname, size_t min_params, size_t max_params, const Anope::string &spermission) : MaxParams(max_params), MinParams(min_params), name(sname), permission(spermission)
+Command::Command(const Anope::string &sname, size_t min_params, size_t max_params, const Anope::string &spermission) : Flags<CommandFlag>(CommandFlagStrings), MaxParams(max_params), MinParams(min_params), name(sname), permission(spermission)
{
this->module = NULL;
this->service = NULL;
diff --git a/src/config.cpp b/src/config.cpp
index 47f0f82ce..330594c13 100644
--- a/src/config.cpp
+++ b/src/config.cpp
@@ -40,7 +40,7 @@ static Anope::string NSDefaults;
/*************************************************************************/
-ServerConfig::ServerConfig() : errstr(""), config_data()
+ServerConfig::ServerConfig() : errstr(""), config_data(), NSDefFlags(NickCoreFlagStrings), CSDefFlags(ChannelInfoFlagStrings), BSDefFlags(BotServFlagStrings)
{
this->Read();
diff --git a/src/memoserv.cpp b/src/memoserv.cpp
index 40bc47f22..a13eeab55 100644
--- a/src/memoserv.cpp
+++ b/src/memoserv.cpp
@@ -14,6 +14,8 @@
static bool SendMemoMail(NickCore *nc, MemoInfo *mi, Memo *m);
+Memo::Memo() : Flags<MemoFlag>(MemoFlagStrings) { }
+
/**
* MemoServ initialization.
* @return void
diff --git a/src/modes.cpp b/src/modes.cpp
index ce5543f93..4f09e0545 100644
--- a/src/modes.cpp
+++ b/src/modes.cpp
@@ -101,6 +101,10 @@ void SetDefaultMLock(ServerConfig *config)
}
}
+ChannelStatus::ChannelStatus() : Flags<ChannelModeName, CMODE_END * 2>(ChannelModeNameStrings)
+{
+}
+
Anope::string ChannelStatus::BuildCharPrefixList() const
{
Anope::string ret;
diff --git a/src/nickalias.cpp b/src/nickalias.cpp
index 4f404b023..b49a02121 100644
--- a/src/nickalias.cpp
+++ b/src/nickalias.cpp
@@ -24,7 +24,7 @@ NickRequest::~NickRequest()
* @param nick The nick
* @param nickcore The nickcofe for this nick
*/
-NickAlias::NickAlias(const Anope::string &nickname, NickCore *nickcore)
+NickAlias::NickAlias(const Anope::string &nickname, NickCore *nickcore) : Flags<NickNameFlag, NS_END>(NickNameFlagStrings)
{
if (nickname.empty())
throw CoreException("Empty nick passed to NickAlias constructor");
diff --git a/src/nickcore.cpp b/src/nickcore.cpp
index b094c8962..85c703dbf 100644
--- a/src/nickcore.cpp
+++ b/src/nickcore.cpp
@@ -4,7 +4,7 @@
/** Default constructor
* @param display The display nick
*/
-NickCore::NickCore(const Anope::string &coredisplay)
+NickCore::NickCore(const Anope::string &coredisplay) : Flags<NickCoreFlag, NI_END>(NickCoreFlagStrings)
{
if (coredisplay.empty())
throw CoreException("Empty display passed to NickCore constructor");
diff --git a/src/operserv.cpp b/src/operserv.cpp
index b31a4385d..3e1f6b7bd 100644
--- a/src/operserv.cpp
+++ b/src/operserv.cpp
@@ -17,9 +17,9 @@ std::vector<NewsItem *> News;
std::vector<std::bitset<32> > DefCon;
bool DefConModesSet = false;
/* Defcon modes mlocked on */
-Flags<ChannelModeName, CMODE_END * 2> DefConModesOn;
+Flags<ChannelModeName, CMODE_END * 2> DefConModesOn(ChannelModeNameStrings);
/* Defcon modes mlocked off */
-Flags<ChannelModeName, CMODE_END * 2> DefConModesOff;
+Flags<ChannelModeName, CMODE_END * 2> DefConModesOff(ChannelModeNameStrings);
/* Map of Modesa and Params for DefCon */
std::map<ChannelModeName, Anope::string> DefConModesOnParams;
diff --git a/src/regchannel.cpp b/src/regchannel.cpp
index b240b8554..0d0f5dc54 100644
--- a/src/regchannel.cpp
+++ b/src/regchannel.cpp
@@ -18,7 +18,7 @@ static ChanAccess dummy_access;
/** Default constructor
* @param chname The channel name
*/
-ChannelInfo::ChannelInfo(const Anope::string &chname)
+ChannelInfo::ChannelInfo(const Anope::string &chname) : Flags<ChannelInfoFlag, CI_END>(ChannelInfoFlagStrings), botflags(BotServFlagStrings)
{
if (chname.empty())
throw CoreException("Empty channel passed to ChannelInfo constructor");
@@ -65,7 +65,7 @@ ChannelInfo::ChannelInfo(const Anope::string &chname)
/** Copy constructor
* @param ci The ChannelInfo to copy settings to
*/
-ChannelInfo::ChannelInfo(ChannelInfo *ci)
+ChannelInfo::ChannelInfo(ChannelInfo *ci) : Flags<ChannelInfoFlag, CI_END>(ChannelInfoFlagStrings), botflags(BotServFlagStrings)
{
*this = *ci;
diff --git a/src/servers.cpp b/src/servers.cpp
index 0f9930403..47a5e5389 100644
--- a/src/servers.cpp
+++ b/src/servers.cpp
@@ -45,7 +45,8 @@ CapabInfo Capab_Info[] = {
{"", CAPAB_END}
};
-Flags<CapabType, CAPAB_END> Capab;
+static const Anope::string CapabFlags = "";
+Flags<CapabType, CAPAB_END> Capab(&CapabFlags);
/** Constructor
* @param uplink The uplink this server is from, is only NULL when creating Me
@@ -55,7 +56,7 @@ Flags<CapabType, CAPAB_END> Capab;
* @param sid Server sid/numeric
* @param flag An optional server flag
*/
-Server::Server(Server *uplink, const Anope::string &name, unsigned hops, const Anope::string &description, const Anope::string &sid, ServerFlag flag) : Name(name), Hops(hops), Description(description), SID(sid), UplinkServer(uplink)
+Server::Server(Server *uplink, const Anope::string &name, unsigned hops, const Anope::string &description, const Anope::string &sid, ServerFlag flag) : Flags<ServerFlag>(ServerFlagStrings), Name(name), Hops(hops), Description(description), SID(sid), UplinkServer(uplink)
{
this->SetFlag(SERVER_SYNCING);
this->SetFlag(flag);
diff --git a/src/sockets.cpp b/src/sockets.cpp
index d15d292cb..941169c17 100644
--- a/src/sockets.cpp
+++ b/src/sockets.cpp
@@ -337,7 +337,7 @@ void SocketIO::Connect(ConnectionSocket *s, const Anope::string &target, int por
/** Empty constructor, used for things such as the pipe socket
*/
-Socket::Socket()
+Socket::Socket() : Flags<SocketFlag, 2>(SocketFlagStrings)
{
this->Type = SOCKTYPE_BASE;
this->IO = &normalSocketIO;
@@ -348,7 +348,7 @@ Socket::Socket()
* @param ipv6 IPv6?
* @param type The socket type, defaults to SOCK_STREAM
*/
-Socket::Socket(int sock, bool ipv6, int type)
+Socket::Socket(int sock, bool ipv6, int type) : Flags<SocketFlag, 2>(SocketFlagStrings)
{
this->Type = SOCKTYPE_BASE;
this->IO = &normalSocketIO;
diff --git a/src/users.cpp b/src/users.cpp
index 58da0f7b2..5e406ced2 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -22,7 +22,7 @@ time_t maxusertime;
/*************************************************************************/
/*************************************************************************/
-User::User(const Anope::string &snick, const Anope::string &sident, const Anope::string &shost, const Anope::string &suid)
+User::User(const Anope::string &snick, const Anope::string &sident, const Anope::string &shost, const Anope::string &suid) : modes(UserModeNameStrings)
{
if (snick.empty() || sident.empty() || shost.empty())
throw CoreException("Bad args passed to User::User");