GCC Code Coverage Report
Directory: src/ Exec Total Coverage
File: src/net/tmwa/generalhandler.cpp Lines: 1 121 0.8 %
Date: 2019-02-12 Branches: 0 184 0.0 %

Line Branch Exec Source
1
/*
2
 *  The ManaPlus Client
3
 *  Copyright (C) 2009  The Mana World Development Team
4
 *  Copyright (C) 2009-2010  The Mana Developers
5
 *  Copyright (C) 2011-2019  The ManaPlus Developers
6
 *
7
 *  This file is part of The ManaPlus Client.
8
 *
9
 *  This program is free software; you can redistribute it and/or modify
10
 *  it under the terms of the GNU General Public License as published by
11
 *  the Free Software Foundation; either version 2 of the License, or
12
 *  any later version.
13
 *
14
 *  This program is distributed in the hope that it will be useful,
15
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 *  GNU General Public License for more details.
18
 *
19
 *  You should have received a copy of the GNU General Public License
20
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 */
22
23
#include "net/tmwa/generalhandler.h"
24
25
#include "client.h"
26
#include "configuration.h"
27
28
#include "gui/windows/skilldialog.h"
29
#include "gui/windows/socialwindow.h"
30
31
#include "gui/widgets/tabs/chat/partytab.h"
32
33
#include "net/tmwa/adminhandler.h"
34
#include "net/tmwa/beinghandler.h"
35
#include "net/tmwa/buysellhandler.h"
36
#include "net/tmwa/chathandler.h"
37
#include "net/tmwa/clanhandler.h"
38
#include "net/tmwa/charserverhandler.h"
39
#include "net/tmwa/gamehandler.h"
40
#include "net/tmwa/guildhandler.h"
41
#include "net/tmwa/inventoryhandler.h"
42
#include "net/tmwa/itemhandler.h"
43
#include "net/tmwa/loginhandler.h"
44
#include "net/tmwa/network.h"
45
#include "net/tmwa/npchandler.h"
46
#include "net/tmwa/partyhandler.h"
47
#include "net/tmwa/pethandler.h"
48
#include "net/tmwa/playerhandler.h"
49
#include "net/tmwa/serverfeatures.h"
50
#include "net/tmwa/tradehandler.h"
51
#include "net/tmwa/skillhandler.h"
52
#include "net/tmwa/questhandler.h"
53
54
#include "net/tmwa/auctionhandler.h"
55
#include "net/tmwa/achievementhandler.h"
56
#include "net/tmwa/attendancehandler.h"
57
#include "net/tmwa/bankhandler.h"
58
#include "net/tmwa/barterhandler.h"
59
#include "net/tmwa/battlegroundhandler.h"
60
#include "net/tmwa/buyingstorehandler.h"
61
#include "net/tmwa/cashshophandler.h"
62
#include "net/tmwa/elementalhandler.h"
63
#include "net/tmwa/familyhandler.h"
64
#include "net/tmwa/friendshandler.h"
65
#include "net/tmwa/homunculushandler.h"
66
#include "net/tmwa/mail2handler.h"
67
#include "net/tmwa/mailhandler.h"
68
#include "net/tmwa/maphandler.h"
69
#include "net/tmwa/markethandler.h"
70
#include "net/tmwa/mercenaryhandler.h"
71
#include "net/tmwa/roulettehandler.h"
72
#include "net/tmwa/searchstorehandler.h"
73
#include "net/tmwa/vendinghandler.h"
74
75
#include "utils/delete2.h"
76
#include "utils/gettext.h"
77
78
#include "debug.h"
79
80
namespace TmwAthena
81
{
82
83
GeneralHandler::GeneralHandler() :
84
    mAdminHandler(new AdminHandler),
85
    mBeingHandler(new BeingHandler(config.getBoolValue("EnableSync"))),
86
    mBuySellHandler(new BuySellHandler),
87
    mCharServerHandler(new CharServerHandler),
88
    mChatHandler(new ChatHandler),
89
    mClanHandler(new ClanHandler),
90
    mGameHandler(new GameHandler),
91
    mGuildHandler(new GuildHandler),
92
    mInventoryHandler(new InventoryHandler),
93
    mItemHandler(new ItemHandler),
94
    mLoginHandler(new LoginHandler),
95
    mNpcHandler(new NpcHandler),
96
    mPartyHandler(new PartyHandler),
97
    mPetHandler(new PetHandler),
98
    mPlayerHandler(new PlayerHandler),
99
    mSkillHandler(new SkillHandler),
100
    mTradeHandler(new TradeHandler),
101
    mQuestHandler(new QuestHandler),
102
    mServerFeatures(new ServerFeatures),
103
    mAuctionHandler(new AuctionHandler),
104
    mAchievementHandler(new AchievementHandler),
105
    mAttendanceHandler(new AttendanceHandler),
106
    mBankHandler(new BankHandler),
107
    mBattleGroundHandler(new BattleGroundHandler),
108
    mBuyingStoreHandler(new BuyingStoreHandler),
109
    mCashShopHandler(new CashShopHandler),
110
    mElementalHandler(new ElementalHandler),
111
    mFamilyHandler(new FamilyHandler),
112
    mFriendsHandler(new FriendsHandler),
113
    mHomunculusHandler(new HomunculusHandler),
114
    mMail2Handler(new Mail2Handler),
115
    mMailHandler(new MailHandler),
116
    mMapHandler(new MapHandler),
117
    mMarketHandler(new MarketHandler),
118
    mBarterHandler(new BarterHandler),
119
    mMercenaryHandler(new MercenaryHandler),
120
    mRouletteHandler(new RouletteHandler),
121
    mSearchStoreHandler(new SearchStoreHandler),
122
    mVendingHandler(new VendingHandler)
123
{
124
    generalHandler = this;
125
    logger->log("Creating tmwa handler");
126
}
127
128
GeneralHandler::~GeneralHandler()
129
{
130
    delete2(Network::mInstance)
131
132
    delete2(mAdminHandler)
133
    delete2(mBeingHandler)
134
    delete2(mBuySellHandler)
135
    delete2(mCharServerHandler)
136
    delete2(mChatHandler)
137
    delete2(mClanHandler)
138
    delete2(mGameHandler)
139
    delete2(mGuildHandler)
140
    delete2(mInventoryHandler)
141
    delete2(mItemHandler)
142
    delete2(mLoginHandler)
143
    delete2(mNpcHandler)
144
    delete2(mPartyHandler)
145
    delete2(mPetHandler)
146
    delete2(mPlayerHandler)
147
    delete2(mSkillHandler)
148
    delete2(mTradeHandler)
149
    delete2(mQuestHandler)
150
    delete2(mServerFeatures)
151
    delete2(mAuctionHandler)
152
    delete2(mAchievementHandler)
153
    delete2(mAttendanceHandler)
154
    delete2(mBankHandler)
155
    delete2(mBattleGroundHandler)
156
    delete2(mBuyingStoreHandler)
157
    delete2(mCashShopHandler)
158
    delete2(mElementalHandler)
159
    delete2(mFamilyHandler)
160
    delete2(mFriendsHandler)
161
    delete2(mHomunculusHandler)
162
    delete2(mMail2Handler)
163
    delete2(mMailHandler)
164
    delete2(mMapHandler)
165
    delete2(mMarketHandler)
166
    delete2(mBarterHandler)
167
    delete2(mMercenaryHandler)
168
    delete2(mRouletteHandler)
169
    delete2(mSearchStoreHandler)
170
    delete2(mVendingHandler)
171
}
172
173
void GeneralHandler::load() const
174
{
175
    new Network;
176
    Network::mInstance->registerHandlers();
177
}
178
179
void GeneralHandler::reload() const
180
{
181
    if (Network::mInstance != nullptr)
182
        Network::mInstance->disconnect();
183
184
    static_cast<LoginHandler*>(mLoginHandler)->clearWorlds();
185
    const CharServerHandler *const charHandler =
186
        static_cast<CharServerHandler*>(mCharServerHandler);
187
    charHandler->setCharCreateDialog(nullptr);
188
    charHandler->setCharSelectDialog(nullptr);
189
    PartyHandler::reload();
190
}
191
192
void GeneralHandler::reloadPartially() const
193
{
194
    PartyHandler::reload();
195
}
196
197
void GeneralHandler::unload() const
198
{
199
    clearHandlers();
200
}
201
202
void GeneralHandler::flushSend() const
203
{
204
    if (Network::mInstance == nullptr)
205
        return;
206
207
    Network::mInstance->flush();
208
}
209
210
void GeneralHandler::flushNetwork() const
211
{
212
    if (Network::mInstance == nullptr)
213
        return;
214
215
    BLOCK_START("GeneralHandler::flushNetwork 1")
216
    Network::mInstance->flush();
217
    BLOCK_END("GeneralHandler::flushNetwork 1")
218
    Network::mInstance->dispatchMessages();
219
220
    BLOCK_START("GeneralHandler::flushNetwork 3")
221
    if (Network::mInstance->getState() == Network::NET_ERROR)
222
    {
223
        if (!Network::mInstance->getError().empty())
224
        {
225
            errorMessage = Network::mInstance->getError();
226
        }
227
        else
228
        {
229
            // TRANSLATORS: error message
230
            errorMessage = _("Got disconnected from server!");
231
        }
232
233
        client->setState(State::ERROR);
234
    }
235
    BLOCK_END("GeneralHandler::flushNetwork 3")
236
}
237
238
void GeneralHandler::clearHandlers() const
239
{
240
    if (Network::mInstance != nullptr)
241
        Network::mInstance->clearHandlers();
242
}
243
244
void GeneralHandler::gameStarted() const
245
{
246
    if (skillDialog != nullptr)
247
        skillDialog->loadSkills();
248
}
249
250
void GeneralHandler::gameEnded() const
251
{
252
    if (socialWindow != nullptr)
253
        socialWindow->removeTab(Ea::taParty);
254
255
    delete2(partyTab)
256
}
257
258
2
}  // namespace TmwAthena