Support removal of payloads from messages

This commit is contained in:
Martin Willi
2011-01-05 16:45:41 +01:00
parent 363ec8986c
commit e6c6a4d304
2 changed files with 14 additions and 0 deletions
+7
View File
@@ -737,6 +737,12 @@ METHOD(message_t, create_payload_enumerator, enumerator_t*,
return this->payloads->create_enumerator(this->payloads);
}
METHOD(message_t, remove_payload_at, void,
private_message_t *this, enumerator_t *enumerator)
{
this->payloads->remove_at(this->payloads, enumerator);
}
METHOD(message_t, get_payload, payload_t*,
private_message_t *this, payload_type_t type)
{
@@ -1466,6 +1472,7 @@ message_t *message_create_from_packet(packet_t *packet)
.set_destination = _set_destination,
.get_destination = _get_destination,
.create_payload_enumerator = _create_payload_enumerator,
.remove_payload_at = _remove_payload_at,
.get_payload = _get_payload,
.get_notify = _get_notify,
.parse_header = _parse_header,
+7
View File
@@ -286,6 +286,13 @@ struct message_t {
*/
enumerator_t * (*create_payload_enumerator) (message_t *this);
/**
* Remove the payload at the current enumerator position.
*
* @param enumerator enumerator created by create_payload_enumerator()
*/
void (*remove_payload_at)(message_t *this, enumerator_t *enumerator);
/**
* Find a payload of a specific type.
*