Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38952f8405 | ||
|
|
68ea3bb3a4 | ||
|
|
ce06abfdbf
|
+30
-5
@@ -169,6 +169,13 @@ TinyFrame * _TF_FN TF_Init(TF_Peer peer_bit)
|
||||
return tf;
|
||||
}
|
||||
|
||||
/** Release the struct */
|
||||
void TF_DeInit(TinyFrame *tf)
|
||||
{
|
||||
if (tf == NULL) return;
|
||||
free(tf);
|
||||
}
|
||||
|
||||
//region Listeners
|
||||
|
||||
/** Reset ID listener's timeout to the original value */
|
||||
@@ -365,6 +372,12 @@ static void _TF_FN TF_HandleReceivedMessage(TinyFrame *tf)
|
||||
if (res == TF_RENEW) {
|
||||
renew_id_listener(ilst);
|
||||
}
|
||||
else if (res == TF_CLOSE) {
|
||||
// Set userdata to NULL to avoid calling user for cleanup
|
||||
ilst->userdata = NULL;
|
||||
ilst->userdata2 = NULL;
|
||||
cleanup_id_listener(tf, i, ilst);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -382,8 +395,12 @@ static void _TF_FN TF_HandleReceivedMessage(TinyFrame *tf)
|
||||
res = tlst->fn(tf, &msg);
|
||||
|
||||
if (res != TF_NEXT) {
|
||||
// if it's TF_CLOSE, we assume user already cleaned up userdata
|
||||
// TF_RENEW doesn't make sense here because type listeners don't expire
|
||||
// type listeners don't have userdata.
|
||||
// TF_RENEW doesn't make sense here because type listeners don't expire = same as TF_STAY
|
||||
|
||||
if (res == TF_CLOSE) {
|
||||
cleanup_type_listener(tf, i, tlst);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -397,8 +414,16 @@ static void _TF_FN TF_HandleReceivedMessage(TinyFrame *tf)
|
||||
res = glst->fn(tf, &msg);
|
||||
|
||||
if (res != TF_NEXT) {
|
||||
// if it's TF_CLOSE, we assume user already cleaned up userdata
|
||||
// TF_RENEW doesn't make sense here because generic listeners don't expire
|
||||
// generic listeners don't have userdata.
|
||||
// TF_RENEW doesn't make sense here because generic listeners don't expire = same as TF_STAY
|
||||
|
||||
// note: It's not expected that user will have multiple generic listeners, or
|
||||
// ever actually remove them. They're most useful as default callbacks if no other listener
|
||||
// handled the message.
|
||||
|
||||
if (res == TF_CLOSE) {
|
||||
cleanup_generic_listener(tf, i, glst);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -696,7 +721,7 @@ static size_t _TF_FN TF_ComposeBody(uint8_t *outbuff,
|
||||
* @param cksum - checksum variable used for the body
|
||||
* @return nr of bytes in outbuff used
|
||||
*/
|
||||
static size_t _TF_FN TF_ComposeTail(uint8_t *outbuff, const TF_CKSUM *cksum)
|
||||
static size_t _TF_FN TF_ComposeTail(uint8_t *outbuff, TF_CKSUM *cksum)
|
||||
{
|
||||
int8_t si = 0; // signed small int
|
||||
uint8_t b = 0;
|
||||
|
||||
+11
-4
@@ -3,14 +3,14 @@
|
||||
|
||||
/**
|
||||
* TinyFrame protocol library
|
||||
*
|
||||
* (c) Ondřej Hruška 2017, MIT License
|
||||
*
|
||||
* (c) Ondřej Hruška 2017, MIT License
|
||||
* no liability/warranty, free for any use, must retain this notice & license
|
||||
*
|
||||
*
|
||||
* Upstream URL: https://github.com/MightyPork/TinyFrame
|
||||
*/
|
||||
|
||||
#define TF_VERSION "2.0.0"
|
||||
#define TF_VERSION "2.0.2"
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
#include <stdint.h> // for uint8_t etc
|
||||
@@ -235,6 +235,13 @@ TinyFrame *TF_Init(TF_Peer peer_bit);
|
||||
*/
|
||||
void TF_InitStatic(TinyFrame *tf, TF_Peer peer_bit);
|
||||
|
||||
/**
|
||||
* De-init the dynamically allocated TF instance
|
||||
*
|
||||
* @param tf
|
||||
*/
|
||||
void TF_DeInit(TinyFrame *tf);
|
||||
|
||||
/**
|
||||
* Reset the frame parser state machine.
|
||||
* This does not affect registered listeners.
|
||||
|
||||
Reference in New Issue
Block a user