Skip to content

Commit 1583802

Browse files
committed
Add rtRetain and rtRelease gladish#3
Removed rtMessage_Destroy from header Fixed memory issue Changed error return in rtConnection ReadUntil
1 parent 437b903 commit 1583802

File tree

10 files changed

+27
-35
lines changed

10 files changed

+27
-35
lines changed

dataProvider/dmProviderDatabase.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ class dmQueryImpl : public dmQuery
112112
m_results.addValue(dmNamedValue(param, dmValue(value)), status);
113113
}
114114

115-
rtMessage_Destroy(res);
116-
rtMessage_Destroy(req);
115+
rtMessage_Release(res);
116+
rtMessage_Release(req);
117117
}
118118
}
119119

dataProvider/dmProviderHost.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,7 @@ class dmProviderHostImpl : public dmProviderHost
133133
rtMessage_Create(&res);
134134
host->encodeResult(res, results);
135135
rtConnection_SendResponse(m_con, hdr, res, 1000);
136-
char* buffer = nullptr;
137-
uint32_t num = 0;
138-
rtError err = rtMessage_ToString(res, &buffer, &num);
139-
printf("\n Response sent is : %s", buffer);
140-
rtMessage_Destroy(res);
136+
rtMessage_Release(res);
141137
}
142138

143139
dmProviderOperation decodeOperation(rtMessage req)
@@ -188,7 +184,7 @@ class dmProviderHostImpl : public dmProviderHost
188184
delete [] param;
189185
}
190186

191-
rtMessage_Destroy(item);
187+
rtMessage_Release(item);
192188
}
193189

194190
void decodeSetRequest(rtMessage req, std::string& name, std::vector<dmNamedValue>& params)
@@ -212,7 +208,7 @@ class dmProviderHostImpl : public dmProviderHost
212208

213209
dmNamedValue namedValue(param, property_value);
214210

215-
rtMessage_Destroy(item);
211+
rtMessage_Release(item);
216212
delete [] param;
217213

218214
params.push_back(namedValue);
@@ -236,7 +232,7 @@ class dmProviderHostImpl : public dmProviderHost
236232
}
237233
rtMessage_SetInt32(msg, "status", status_code);
238234
rtMessage_AddMessage(res, "result", msg);
239-
rtMessage_Destroy(msg);
235+
rtMessage_Release(msg);
240236
}
241237
}
242238

rtConnection.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
#include <unistd.h>
3333

3434
#define RTMSG_LISTENERS_MAX 64
35-
#define RTMSG_SEND_BUFFER_SIZE (1024 * 4094)
35+
#define RTMSG_SEND_BUFFER_SIZE (1024 * 8)
3636

3737
struct _rtListener
3838
{
@@ -65,7 +65,7 @@ static void onInboxMessage(rtMessageHeader const* hdr, uint8_t const* p, uint32_
6565
struct _rtConnection* con = (struct _rtConnection *) closure;
6666
if (con->response != NULL)
6767
{
68-
rtMessage_Destroy(con->response);
68+
rtMessage_Release(con->response);
6969
con->response = NULL;
7070
}
7171
rtMessage_FromBytes(&con->response, p, n);
@@ -154,7 +154,7 @@ rtConnection_ConnectAndRegister(rtConnection con)
154154
rtMessage_SetString(m, "topic", con->listeners[i].expression);
155155
rtMessage_SetInt32(m, "route_id", con->listeners[i].subscription_id);
156156
rtConnection_SendMessage(con, m, "_RTROUTED.INBOX.SUBSCRIBE");
157-
rtMessage_Destroy(m);
157+
rtMessage_Release(m);
158158
}
159159
}
160160

@@ -208,8 +208,11 @@ rtConnection_ReadUntil(rtConnection con, uint8_t* buff, int count, int32_t timeo
208208

209209
ssize_t n = recv(con->fd, buff + bytes_read, (bytes_to_read - bytes_read), MSG_NOSIGNAL);
210210
if (n == 0)
211-
return RT_ERROR;
212-
//return rtErrorFromErrno(ENOTCONN);
211+
{
212+
rtLog_Error("Failed to read error : %s", rtStrError(rtErrorFromErrno(ENOTCONN)));
213+
return rtErrorFromErrno(ENOTCONN);
214+
}
215+
213216
if (n == -1)
214217
{
215218
if (errno == EINTR)
@@ -502,7 +505,7 @@ rtConnection_AddListener(rtConnection con, char const* expression, rtMessageCall
502505
rtMessage_SetString(m, "topic", expression);
503506
rtMessage_SetInt32(m, "route_id", con->listeners[i].subscription_id);
504507
rtConnection_SendMessage(con, m, "_RTROUTED.INBOX.SUBSCRIBE");
505-
rtMessage_Destroy(m);
508+
rtMessage_Release(m);
506509

507510
return 0;
508511
}
@@ -535,6 +538,7 @@ rtConnection_TimedDispatch(rtConnection con, int32_t timeout)
535538
{
536539
con->state = rtConnectionState_ReadHeaderPreamble;
537540
err = rtConnection_ReadUntil(con, con->recv_buffer, 4, timeout);
541+
538542
if (err == RT_ERROR_TIMEOUT)
539543
return err;
540544

rtMessage.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,6 @@ rtMessage_Clone(rtMessage const message, rtMessage* copy);
4949
rtError
5050
rtMessage_FromBytes(rtMessage* message, uint8_t const* buff, int n);
5151

52-
/**
53-
* Destroy a message; free the storage that it occupies.
54-
* @param pointer to message to be destroyed
55-
* @return rtError
56-
**/
57-
rtError
58-
rtMessage_Destroy(rtMessage message);
59-
6052
/**
6153
* Extract the data from a message as a byte sequence.
6254
* @param extract the data bytes from this message.

rtrouted.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ rtRouted_OnMessage(rtConnectedClient* sender, rtMessageHeader* hdr, uint8_t cons
235235
subscription->client = sender;
236236
rtRouted_AddRoute(rtRouted_ForwardMessage, expression, subscription);
237237

238-
rtMessage_Destroy(m);
238+
rtMessage_Release(m);
239239
}
240240
else if (strcmp(hdr->topic, "_RTROUTED.INBOX.HELLO") == 0)
241241
{
@@ -250,7 +250,7 @@ rtRouted_OnMessage(rtConnectedClient* sender, rtMessageHeader* hdr, uint8_t cons
250250
subscription->client = sender;
251251
rtRouted_AddRoute(rtRouted_ForwardMessage, inbox, subscription);
252252

253-
rtMessage_Destroy(m);
253+
rtMessage_Release(m);
254254
}
255255
else
256256
{

rtsub.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ static void on_message(rtMessageHeader const* hdr, uint8_t const* buff, uint32_t
3838
}
3939
printf("END MESSAGE\n");
4040

41-
rtMessage_Destroy(m);
41+
rtMessage_Release(m);
4242
}
4343

4444
int main(int argc, char* argv[])

sample_recv.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ void onMessage(rtMessageHeader const* hdr, uint8_t const* buff, uint32_t n, void
4444

4545
free(s);
4646
free(itemstring);
47-
rtMessage_Destroy(m);
47+
rtMessage_Release(m);
4848
}
4949

5050
int main()
@@ -56,7 +56,7 @@ int main()
5656
rtConnection_Create(&con, "APP2", "tcp://127.0.0.1:10001");
5757
// rtConnection_Create(&con, "APP2", "unix:///tmp/rtrouted");
5858
rtConnection_AddListener(con, "A.*.C", onMessage, NULL);
59-
rtConnection_AddListener(con, "A.B.C.>", onMessage, NULL);
59+
rtConnection_AddListener(con, "A.B.C.*", onMessage, NULL);
6060

6161
while (1)
6262
{

sample_req.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ int main()
5050
free(p);
5151
}
5252

53-
rtMessage_Destroy(req);
54-
rtMessage_Destroy(res);
53+
rtMessage_Release(req);
54+
rtMessage_Release(res);
5555

5656
sleep(1);
5757
}

sample_res.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ void onMessage(rtMessageHeader const* hdr, uint8_t const* buff, uint32_t n, void
4040
rtMessage_Create(&res);
4141
rtMessage_SetString(res, "reply", "reply -- Hello World");
4242
rtConnection_SendResponse(con, hdr, res, 1000);
43-
rtMessage_Destroy(res);
43+
rtMessage_Release(res);
4444
}
4545

46-
rtMessage_Destroy(req);
46+
rtMessage_Release(req);
4747

4848
rtLog_Info("flags :%d", hdr->flags);
4949
rtLog_Info("is_request:%d", rtMessageHeader_IsRequest(hdr));

sample_send.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ int main()
4444
err = rtConnection_SendMessage(con, m, "A.B.C");
4545
rtLog_Info("send[%s]: %s", "A.B.C", rtStrError(err));
4646

47-
rtMessage_Destroy(m);
47+
rtMessage_Release(m);
4848
sleep(1);
4949

5050
rtMessage_Create(&m);
@@ -53,7 +53,7 @@ int main()
5353
err = rtConnection_SendMessage(con, m, "A.B.C.FOO.BAR");
5454
rtLog_Info("send[%s]: %s", "A.B.C.FOO.BAR", rtStrError(err));
5555

56-
rtMessage_Destroy(m);
56+
rtMessage_Release(m);
5757
sleep(1);
5858
}
5959

0 commit comments

Comments
 (0)