Merge "stasis: Reduce calculation of stasis message type hash." into 16
This commit is contained in:
commit
4202fbdc51
|
@ -318,6 +318,14 @@ enum stasis_message_type_result stasis_message_type_create(const char *name,
|
|||
*/
|
||||
const char *stasis_message_type_name(const struct stasis_message_type *type);
|
||||
|
||||
/*!
|
||||
* \brief Gets the hash of a given message type
|
||||
* \param type The type to get the hash of.
|
||||
* \return The hash
|
||||
* \since 13.24.0
|
||||
*/
|
||||
unsigned int stasis_message_type_hash(const struct stasis_message_type *type);
|
||||
|
||||
/*!
|
||||
* \brief Check whether a message type is declined
|
||||
*
|
||||
|
|
|
@ -174,7 +174,7 @@ static void cache_entry_dtor(void *obj)
|
|||
|
||||
static void cache_entry_compute_hash(struct cache_entry_key *key)
|
||||
{
|
||||
key->hash = ast_hashtab_hash_string(stasis_message_type_name(key->type));
|
||||
key->hash = stasis_message_type_hash(key->type);
|
||||
key->hash += ast_hashtab_hash_string(key->id);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,11 +32,13 @@
|
|||
#include "asterisk/astobj2.h"
|
||||
#include "asterisk/stasis.h"
|
||||
#include "asterisk/utils.h"
|
||||
#include "asterisk/hashtab.h"
|
||||
|
||||
/*! \internal */
|
||||
struct stasis_message_type {
|
||||
struct stasis_message_vtable *vtable;
|
||||
char *name;
|
||||
unsigned int hash;
|
||||
};
|
||||
|
||||
static struct stasis_message_vtable null_vtable = {};
|
||||
|
@ -73,6 +75,7 @@ int stasis_message_type_create(const char *name,
|
|||
ao2_cleanup(type);
|
||||
return STASIS_MESSAGE_TYPE_ERROR;
|
||||
}
|
||||
type->hash = ast_hashtab_hash_string(name);
|
||||
type->vtable = vtable;
|
||||
*result = type;
|
||||
|
||||
|
@ -84,6 +87,11 @@ const char *stasis_message_type_name(const struct stasis_message_type *type)
|
|||
return type->name;
|
||||
}
|
||||
|
||||
unsigned int stasis_message_type_hash(const struct stasis_message_type *type)
|
||||
{
|
||||
return type->hash;
|
||||
}
|
||||
|
||||
/*! \internal */
|
||||
struct stasis_message {
|
||||
/*! Time the message was created */
|
||||
|
|
Loading…
Reference in New Issue