Skip to content

Commit b975358

Browse files
committed
temp
1 parent f594544 commit b975358

17 files changed

+308
-51
lines changed

lib/libkiwi/libkiwi.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,16 @@
5050
#include <libkiwi/net/kiwiAsyncSocket.h>
5151
#include <libkiwi/net/kiwiEmuRichPresenceClient.h>
5252
#include <libkiwi/net/kiwiHttpRequest.h>
53+
#include <libkiwi/net/kiwiIPacket.h>
5354
#include <libkiwi/net/kiwiIRichPresenceClient.h>
54-
#include <libkiwi/net/kiwiPacket.h>
55+
#include <libkiwi/net/kiwiNetClient.h>
56+
#include <libkiwi/net/kiwiNetServer.h>
5557
#include <libkiwi/net/kiwiPortRegistry.h>
5658
#include <libkiwi/net/kiwiReliableClient.h>
5759
#include <libkiwi/net/kiwiReliablePacket.h>
5860
#include <libkiwi/net/kiwiReliableSocket.h>
5961
#include <libkiwi/net/kiwiRichPresenceMgr.h>
62+
#include <libkiwi/net/kiwiSizedPacket.h>
6063
#include <libkiwi/net/kiwiSocketBase.h>
6164
#include <libkiwi/net/kiwiSyncSocket.h>
6265
#include <libkiwi/net/kiwiWebSocket.h>

lib/libkiwi/net/kiwiAsyncSocket.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,7 @@ SOResult AsyncSocket::RecvImpl(void* pDst, u32 len, u32& rRecv,
406406
void* pArg) {
407407
K_ASSERT(IsOpen());
408408
K_ASSERT_PTR(pDst);
409+
K_ASSERT_PTR(pCallback);
409410
K_ASSERT(OSIsMEM2Region(pDst));
410411

411412
// Packet to hold incoming data
@@ -438,6 +439,7 @@ SOResult AsyncSocket::SendImpl(const void* pSrc, u32 len, u32& rSend,
438439
void* pArg) {
439440
K_ASSERT(IsOpen());
440441
K_ASSERT_PTR(pSrc);
442+
K_ASSERT_PTR(pCallback);
441443
K_ASSERT(OSIsMEM2Region(pSrc));
442444

443445
// Packet to hold incoming data

lib/libkiwi/net/kiwiIPacket.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#ifndef LIBKIWI_NET_I_PACKET_H
2+
#define LIBKIWI_NET_I_PACKET_H
3+
#include <libkiwi/k_types.h>
4+
5+
namespace kiwi {
6+
//! @addtogroup libkiwi_net
7+
//! @{
8+
9+
/**
10+
* @brief Network packet interface
11+
*/
12+
class IPacket {
13+
public:
14+
/**
15+
* @brief Destructor
16+
*/
17+
virtual ~IPacket() {}
18+
};
19+
20+
//! @}
21+
} // namespace kiwi
22+
23+
#endif
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#ifndef LIBKIWI_NET_I_PACKET_FACTORY_H
2+
#define LIBKIWI_NET_I_PACKET_FACTORY_H
3+
#include <libkiwi/k_types.h>
4+
5+
namespace kiwi {
6+
//! @addtogroup libkiwi_net
7+
//! @{
8+
9+
// Forward declarations
10+
class IPacket;
11+
12+
/**
13+
* @brief Packet factory interface
14+
*/
15+
class IPacketFactory {
16+
public:
17+
/**
18+
* @brief Destructor
19+
*/
20+
virtual ~IPacketFactory() {}
21+
22+
/**
23+
* @brief Creates a new packet object
24+
*/
25+
virtual IPacket* Create() = 0;
26+
};
27+
28+
//! @}
29+
} // namespace kiwi
30+
31+
#endif

lib/libkiwi/net/kiwiNetClient.h

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#ifndef LIBKIWI_NET_NET_CLIENT_H
2+
#define LIBKIWI_NET_NET_CLIENT_H
3+
#include <libkiwi/k_types.h>
4+
5+
#include <revolution/SO.h>
6+
7+
namespace kiwi {
8+
//! @addtogroup libkiwi_net
9+
//! @{
10+
11+
// Forward declarations
12+
class IPacket;
13+
class IPacketFactory;
14+
class SocketBase;
15+
16+
/**
17+
* @brief Network client
18+
*/
19+
class NetClient {
20+
public:
21+
/**
22+
* @brief Message receive callback
23+
*
24+
* @param pPacket Incoming packet (NULL if error occurred)
25+
* @param result Socket operation result
26+
* @param pArg Callback user argument
27+
*/
28+
typedef void (*RecvCallback)(IPacket* pPacket, SOResult result, void* pArg);
29+
30+
public:
31+
/**
32+
* @brief Constructor
33+
*
34+
* @param pSocket Network socket
35+
* @param pPacketFactory Packet factory
36+
*/
37+
NetClient(SocketBase* pSocket, IPacketFactory* pPacketFactory)
38+
: mpSocket(pSocket), mpPacketFactory(pPacketFactory) {}
39+
40+
/**
41+
* @brief Attempts to receive a message over the network
42+
*/
43+
IPacket* Recv();
44+
45+
private:
46+
//! Network socket
47+
SocketBase* mpSocket;
48+
//! Packet factory
49+
IPacketFactory* mpPacketFactory;
50+
};
51+
52+
//! @}
53+
} // namespace kiwi
54+
55+
#endif

lib/libkiwi/net/kiwiNetServer.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#ifndef LIBKIWI_NET_NET_SERVER_H
2+
#define LIBKIWI_NET_NET_SERVER_H
3+
#include <libkiwi/k_types.h>
4+
5+
#include <revolution/SO.h>
6+
7+
namespace kiwi {
8+
//! @addtogroup libkiwi_net
9+
//! @{
10+
11+
// Forward declarations
12+
class IPacket;
13+
class IPacketFactory;
14+
class SocketBase;
15+
16+
/**
17+
* @brief Network server
18+
*/
19+
class NetServer {
20+
public:
21+
};
22+
23+
//! @}
24+
} // namespace kiwi
25+
26+
#endif
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#ifndef LIBKIWI_NET_PACKET_FACTORY_H
2+
#define LIBKIWI_NET_PACKET_FACTORY_H
3+
#include <libkiwi/k_types.h>
4+
#include <libkiwi/net/kiwiIPacketFactory.h>
5+
6+
namespace kiwi {
7+
//! @addtogroup libkiwi_net
8+
//! @{
9+
10+
/**
11+
* @brief Generic packet factory implementation
12+
*
13+
* @tparam T Packet class type
14+
*/
15+
template <typename T = Packet> class TPacketFactory : public IPacketFactory {
16+
/**
17+
* @brief Creates a new network packet
18+
*/
19+
virtual Packet* Create() {
20+
return new T();
21+
}
22+
};
23+
24+
//! @}
25+
} // namespace kiwi
26+
27+
#endif
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@ class Packet {
4444
Free();
4545
}
4646

47+
/**
48+
* @brief Allocates message buffer of the specified size
49+
*
50+
* @param size Packet size
51+
*/
52+
virtual void Alloc(u32 size);
53+
4754
/**
4855
* @brief Gets the current size of the message buffer
4956
*/
@@ -124,13 +131,6 @@ class Packet {
124131
return mAddress;
125132
}
126133

127-
/**
128-
* @brief Allocates message buffer of the specified size
129-
*
130-
* @param size Packet size
131-
*/
132-
void Alloc(u32 size);
133-
134134
/**
135135
* @brief Reads data from message buffer
136136
*

lib/libkiwi/net/kiwiReliableClient.cpp

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)