Skip to content

Commit bdc5b89

Browse files
committed
fix: implement transport layer stubs
1 parent 3e5fc78 commit bdc5b89

1 file changed

Lines changed: 72 additions & 0 deletions

File tree

sdk/c/src/eipc_transport.c

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/*
2+
* EIPC Transport Layer — stub implementation
3+
* Provides TCP / Unix socket framing (length-prefixed).
4+
* TODO: Replace stubs with real socket I/O.
5+
*/
6+
7+
#include "eipc.h"
8+
#include <string.h>
9+
10+
eipc_status_t eipc_transport_connect(eipc_socket_t *sock,
11+
const char *address) {
12+
if (!sock || !address)
13+
return EIPC_ERR_INVALID;
14+
15+
/* TODO: parse address, create socket, connect */
16+
*sock = EIPC_INVALID_SOCKET;
17+
return EIPC_ERR_CONNECT;
18+
}
19+
20+
eipc_status_t eipc_transport_listen(eipc_socket_t *sock,
21+
const char *address) {
22+
if (!sock || !address)
23+
return EIPC_ERR_INVALID;
24+
25+
/* TODO: parse address, bind, listen */
26+
*sock = EIPC_INVALID_SOCKET;
27+
return EIPC_ERR_CONNECT;
28+
}
29+
30+
eipc_status_t eipc_transport_accept(eipc_socket_t listen_sock,
31+
eipc_socket_t *client_sock,
32+
char *remote_addr,
33+
size_t remote_addr_size) {
34+
if (!client_sock)
35+
return EIPC_ERR_INVALID;
36+
37+
(void)listen_sock;
38+
(void)remote_addr;
39+
(void)remote_addr_size;
40+
41+
/* TODO: accept incoming connection */
42+
*client_sock = EIPC_INVALID_SOCKET;
43+
return EIPC_ERR_CONNECT;
44+
}
45+
46+
eipc_status_t eipc_transport_send_frame(eipc_socket_t sock,
47+
const eipc_frame_t *frame) {
48+
if (!frame)
49+
return EIPC_ERR_INVALID;
50+
51+
(void)sock;
52+
53+
/* TODO: encode frame and send over socket */
54+
return EIPC_ERR_IO;
55+
}
56+
57+
eipc_status_t eipc_transport_recv_frame(eipc_socket_t sock,
58+
eipc_frame_t *frame) {
59+
if (!frame)
60+
return EIPC_ERR_INVALID;
61+
62+
(void)sock;
63+
64+
/* TODO: read length-prefixed frame from socket */
65+
memset(frame, 0, sizeof(*frame));
66+
return EIPC_ERR_IO;
67+
}
68+
69+
void eipc_transport_close(eipc_socket_t sock) {
70+
(void)sock;
71+
/* TODO: close socket */
72+
}

0 commit comments

Comments
 (0)