Skip to content

Commit 3542dbd

Browse files
code refactor
1 parent c83e0e7 commit 3542dbd

9 files changed

Lines changed: 392 additions & 609 deletions

File tree

include/bitchat/core/bitchat_manager.h

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -67,25 +67,6 @@ class BitchatManager
6767
std::shared_ptr<CryptoService> getCryptoService() const;
6868
std::shared_ptr<NoiseService> getNoiseService() const;
6969

70-
// Set callbacks for UI updates
71-
using MessageCallback = std::function<void(const BitchatMessage &)>;
72-
using PeerJoinedCallback = std::function<void(const std::string &, const std::string &)>;
73-
using PeerLeftCallback = std::function<void(const std::string &, const std::string &)>;
74-
using PeerConnectedCallback = std::function<void(const std::string &)>;
75-
using PeerDisconnectedCallback = std::function<void(const std::string &)>;
76-
using StatusCallback = std::function<void(const std::string &)>;
77-
using ChannelJoinedCallback = std::function<void(const std::string &)>;
78-
using ChannelLeftCallback = std::function<void(const std::string &)>;
79-
80-
void setMessageCallback(MessageCallback callback);
81-
void setPeerJoinedCallback(PeerJoinedCallback callback);
82-
void setPeerLeftCallback(PeerLeftCallback callback);
83-
void setPeerConnectedCallback(PeerConnectedCallback callback);
84-
void setPeerDisconnectedCallback(PeerDisconnectedCallback callback);
85-
void setStatusCallback(StatusCallback callback);
86-
void setChannelJoinedCallback(ChannelJoinedCallback callback);
87-
void setChannelLeftCallback(ChannelLeftCallback callback);
88-
8970
private:
9071
// Static instance
9172
static std::shared_ptr<BitchatManager> instance;
@@ -103,27 +84,6 @@ class BitchatManager
10384
// Runners
10485
std::shared_ptr<BluetoothAnnounceRunner> announceRunner;
10586
std::shared_ptr<CleanupRunner> cleanupRunner;
106-
107-
// Callbacks
108-
MessageCallback messageCallback;
109-
PeerJoinedCallback peerJoinedCallback;
110-
PeerLeftCallback peerLeftCallback;
111-
PeerConnectedCallback peerConnectedCallback;
112-
PeerDisconnectedCallback peerDisconnectedCallback;
113-
StatusCallback statusCallback;
114-
ChannelJoinedCallback channelJoinedCallback;
115-
ChannelLeftCallback channelLeftCallback;
116-
117-
// Internal methods
118-
void setupCallbacks();
119-
void onMessageReceived(const BitchatMessage &message);
120-
void onPeerJoined(const std::string &peerID, const std::string &nickname);
121-
void onPeerLeft(const std::string &peerID, const std::string &nickname);
122-
void onPeerConnected(const std::string &peripheralID);
123-
void onPeerDisconnected(const std::string &peripheralID);
124-
void onStatusUpdate(const std::string &status);
125-
void onChannelJoined(const std::string &channel);
126-
void onChannelLeft(const std::string &channel);
12787
};
12888

12989
} // namespace bitchat

include/bitchat/services/message_service.h

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include "bitchat/core/bitchat_data.h"
44
#include "bitchat/protocol/packet.h"
5+
#include "bitchat/ui/ui_interface.h"
56
#include <functional>
67
#include <map>
78
#include <memory>
@@ -43,24 +44,37 @@ class MessageService
4344
// Start identity announce
4445
void startIdentityAnnounce();
4546

47+
// Peer joined
48+
void peerJoined(const std::string &peerID, const std::string &nickname);
49+
50+
// Peer left
51+
void peerLeft(const std::string &peerID, const std::string &nickname);
52+
53+
// Peer connected
54+
void peerConnected(const std::string &peripheralID);
55+
56+
// Peer disconnected
57+
void peerDisconnected(const std::string &peripheralID);
58+
59+
// Centralized packet processing - main entry point for all packets
60+
void processPacket(const BitchatPacket &packet, const std::string &peripheralID);
61+
4662
// Set callbacks for message events
4763
using MessageReceivedCallback = std::function<void(const BitchatMessage &)>;
4864
using ChannelJoinedCallback = std::function<void(const std::string &)>;
4965
using ChannelLeftCallback = std::function<void(const std::string &)>;
5066
using PeerJoinedCallback = std::function<void(const std::string &, const std::string &)>;
5167
using PeerLeftCallback = std::function<void(const std::string &, const std::string &)>;
68+
using PeerConnectedCallback = std::function<void(const std::string &)>;
69+
using PeerDisconnectedCallback = std::function<void(const std::string &)>;
5270

5371
void setMessageReceivedCallback(MessageReceivedCallback callback);
5472
void setChannelJoinedCallback(ChannelJoinedCallback callback);
5573
void setChannelLeftCallback(ChannelLeftCallback callback);
5674
void setPeerJoinedCallback(PeerJoinedCallback callback);
5775
void setPeerLeftCallback(PeerLeftCallback callback);
58-
59-
// Centralized packet processing - main entry point for all packets
60-
void processPacket(const BitchatPacket &packet, const std::string &peripheralID);
61-
62-
// Check if service is ready
63-
bool isReady() const;
76+
void setPeerConnectedCallback(PeerConnectedCallback callback);
77+
void setPeerDisconnectedCallback(PeerDisconnectedCallback callback);
6478

6579
private:
6680
// Dependencies
@@ -74,6 +88,8 @@ class MessageService
7488
ChannelLeftCallback channelLeftCallback;
7589
PeerJoinedCallback peerJoinedCallback;
7690
PeerLeftCallback peerLeftCallback;
91+
PeerConnectedCallback peerConnectedCallback;
92+
PeerDisconnectedCallback peerDisconnectedCallback;
7793

7894
// Message-related packet processing
7995
void processMessagePacket(const BitchatPacket &packet);

include/bitchat/services/network_service.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ class NetworkService
5454
void setPeerConnectedCallback(PeerConnectedCallback callback);
5555
void setPeerDisconnectedCallback(PeerDisconnectedCallback callback);
5656

57-
// Check if network is ready
58-
bool isReady() const;
59-
6057
private:
6158
// Bluetooth interface
6259
std::shared_ptr<IBluetoothNetwork> bluetoothNetworkInterface;

src/bitchat/core/bitchat_manager.cpp

Lines changed: 13 additions & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ bool BitchatManager::initialize(
8080
return false;
8181
}
8282

83-
// Generate or load key pair
84-
if (!cryptoService->generateOrLoadKeyPair("bitchat-pk.pem"))
83+
// Initialize UI with message service
84+
if (!userInterface->initialize(messageService))
8585
{
86-
spdlog::error("Failed to generate or load key pair");
86+
spdlog::error("Failed to initialize UserInterface");
8787
return false;
8888
}
8989

@@ -93,16 +93,6 @@ bool BitchatManager::initialize(
9393
return false;
9494
}
9595

96-
// Initialize UI with message service
97-
if (!userInterface->initialize(messageService))
98-
{
99-
spdlog::error("Failed to initialize UserInterface");
100-
return false;
101-
}
102-
103-
// Set up callbacks
104-
setupCallbacks();
105-
10696
spdlog::info("BitchatManager initialized successfully");
10797

10898
return true;
@@ -140,18 +130,26 @@ void BitchatManager::stop()
140130

141131
bool BitchatManager::sendMessage(const std::string &content)
142132
{
133+
if (!messageService)
134+
{
135+
return false;
136+
}
137+
143138
return messageService->sendMessage(content);
144139
}
145140

146141
bool BitchatManager::sendPrivateMessage(const std::string &content, const std::string &recipientNickname)
147142
{
143+
if (!messageService)
144+
{
145+
return false;
146+
}
147+
148148
return messageService->sendPrivateMessage(content, recipientNickname);
149149
}
150150

151151
void BitchatManager::joinChannel(const std::string &channel)
152152
{
153-
BitchatData::shared()->setCurrentChannel(channel);
154-
155153
if (messageService)
156154
{
157155
messageService->joinChannel(channel);
@@ -160,8 +158,6 @@ void BitchatManager::joinChannel(const std::string &channel)
160158

161159
void BitchatManager::leaveChannel()
162160
{
163-
BitchatData::shared()->setCurrentChannel("");
164-
165161
if (messageService)
166162
{
167163
messageService->leaveChannel();
@@ -173,177 +169,6 @@ void BitchatManager::changeNickname(const std::string &nickname)
173169
BitchatData::shared()->setNickname(nickname);
174170
}
175171

176-
void BitchatManager::setMessageCallback(MessageCallback callback)
177-
{
178-
messageCallback = callback;
179-
}
180-
181-
void BitchatManager::setPeerJoinedCallback(PeerJoinedCallback callback)
182-
{
183-
peerJoinedCallback = callback;
184-
}
185-
186-
void BitchatManager::setPeerLeftCallback(PeerLeftCallback callback)
187-
{
188-
peerLeftCallback = callback;
189-
}
190-
191-
void BitchatManager::setPeerConnectedCallback(PeerConnectedCallback callback)
192-
{
193-
peerConnectedCallback = callback;
194-
}
195-
196-
void BitchatManager::setPeerDisconnectedCallback(PeerDisconnectedCallback callback)
197-
{
198-
peerDisconnectedCallback = callback;
199-
}
200-
201-
void BitchatManager::setStatusCallback(StatusCallback callback)
202-
{
203-
statusCallback = callback;
204-
}
205-
206-
void BitchatManager::setChannelJoinedCallback(ChannelJoinedCallback callback)
207-
{
208-
channelJoinedCallback = callback;
209-
}
210-
211-
void BitchatManager::setChannelLeftCallback(ChannelLeftCallback callback)
212-
{
213-
channelLeftCallback = callback;
214-
}
215-
216-
void BitchatManager::setupCallbacks()
217-
{
218-
// Set up network manager callbacks
219-
220-
// clang-format off
221-
networkService->setPeerConnectedCallback([this](const std::string &peripheralID) {
222-
onPeerConnected(peripheralID);
223-
});
224-
// clang-format on
225-
226-
// clang-format off
227-
networkService->setPeerDisconnectedCallback([this](const std::string &peripheralID) {
228-
onPeerDisconnected(peripheralID);
229-
});
230-
// clang-format on
231-
232-
// Set up message manager callbacks
233-
234-
// clang-format off
235-
messageService->setMessageReceivedCallback([this](const BitchatMessage &message) {
236-
onMessageReceived(message);
237-
});
238-
// clang-format on
239-
240-
// clang-format off
241-
messageService->setChannelJoinedCallback([this](const std::string &channel) {
242-
onChannelJoined(channel);
243-
});
244-
// clang-format on
245-
246-
// clang-format off
247-
messageService->setChannelLeftCallback([this](const std::string &channel) {
248-
onChannelLeft(channel);
249-
});
250-
// clang-format on
251-
252-
// clang-format off
253-
messageService->setPeerJoinedCallback([this](const std::string &peerID, const std::string &nickname) {
254-
onPeerJoined(peerID, nickname);
255-
});
256-
// clang-format on
257-
258-
// clang-format off
259-
messageService->setPeerLeftCallback([this](const std::string &peerID, const std::string &nickname) {
260-
onPeerLeft(peerID, nickname);
261-
});
262-
// clang-format on
263-
}
264-
265-
void BitchatManager::onMessageReceived(const BitchatMessage &message)
266-
{
267-
if (messageCallback)
268-
{
269-
messageCallback(message);
270-
}
271-
}
272-
273-
void BitchatManager::onPeerJoined(const std::string &peerID, const std::string &nickname)
274-
{
275-
if (peerJoinedCallback)
276-
{
277-
peerJoinedCallback(peerID, nickname);
278-
}
279-
}
280-
281-
void BitchatManager::onPeerLeft(const std::string &peerID, const std::string &nickname)
282-
{
283-
if (peerLeftCallback)
284-
{
285-
peerLeftCallback(peerID, nickname);
286-
}
287-
}
288-
289-
void BitchatManager::onPeerConnected(const std::string &peripheralID)
290-
{
291-
if (peerConnectedCallback)
292-
{
293-
peerConnectedCallback(peripheralID);
294-
}
295-
}
296-
297-
void BitchatManager::onPeerDisconnected(const std::string &peripheralID)
298-
{
299-
// Remove peer from data store
300-
auto peers = BitchatData::shared()->getPeers();
301-
302-
for (const auto &peer : peers)
303-
{
304-
if (peer.getPeripheralID() == peripheralID)
305-
{
306-
std::string peerID = peer.getPeerID();
307-
std::string nickname = peer.getNickname();
308-
BitchatData::shared()->removePeer(peerID);
309-
310-
onPeerLeft(peerID, nickname);
311-
312-
break;
313-
}
314-
}
315-
316-
// Notify callback
317-
if (peerDisconnectedCallback)
318-
{
319-
peerDisconnectedCallback(peripheralID);
320-
}
321-
}
322-
323-
void BitchatManager::onStatusUpdate(const std::string &status)
324-
{
325-
if (statusCallback)
326-
{
327-
statusCallback(status);
328-
}
329-
}
330-
331-
void BitchatManager::onChannelJoined(const std::string &channel)
332-
{
333-
if (channelJoinedCallback)
334-
{
335-
channelJoinedCallback(channel);
336-
}
337-
}
338-
339-
void BitchatManager::onChannelLeft(const std::string &channel)
340-
{
341-
if (channelLeftCallback)
342-
{
343-
channelLeftCallback(channel);
344-
}
345-
}
346-
347172
std::shared_ptr<IUserInterface> BitchatManager::getUserInterface() const
348173
{
349174
return userInterface;

src/bitchat/services/crypto_service.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@ CryptoService::~CryptoService()
2323

2424
bool CryptoService::initialize()
2525
{
26+
// Generate or load key pair
27+
if (!generateOrLoadKeyPair("bitchat-pk.pem"))
28+
{
29+
spdlog::error("Failed to generate or load key pair");
30+
return false;
31+
}
32+
33+
// Initialize OpenSSL
2634
OpenSSL_add_all_algorithms();
2735
ERR_load_crypto_strings();
2836

0 commit comments

Comments
 (0)