Changeset 4782:f92e1cd67192 in roaraudio
- Timestamp:
- 03/10/11 23:42:19 (13 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroar/trap.h
r4779 r4782 63 63 64 64 unsigned int roar_trap_register_group(const char * name); 65 const char * roar_trap_get_groupname(const unsigned int group); 66 unsigned int roar_trap_get_groupid(const char * name); 65 67 66 68 void roar_strap_impl(const unsigned int group, const char * name, unsigned int line, const char * file); -
libroar/trap.c
r4779 r4782 36 36 #include "libroar.h" 37 37 38 static struct _group { 39 unsigned int id; 40 const char * name; 41 } _libroar_trap_groups[] = { 42 {ROAR_TRAP_GROUP_LIBROAR, "libroar"}, 43 {ROAR_TRAP_GROUP_ROARD, "roard"}, 44 {ROAR_TRAP_GROUP_APP, "app"}, 45 {ROAR_TRAP_GROUP_LIB, "lib"}, 46 {ROAR_TRAP_GROUP_NETWORK, "network"}, 47 {ROAR_TRAP_GROUP_PROTO, "proto"}, 48 {-1, NULL} 49 }; 50 38 51 unsigned int roar_trap_register_group(const char * name) { 39 52 static unsigned int state = ROAR_TRAP_GROUP_USER_MIN; 53 unsigned int ret; 54 size_t i; 40 55 41 return state++; 56 for (i = 0; i < (sizeof(_libroar_trap_groups)/sizeof(*_libroar_trap_groups)) && _libroar_trap_groups[i].id != -1; i++); 57 if ( i == (sizeof(_libroar_trap_groups)/sizeof(*_libroar_trap_groups)) ) 58 return -1; 59 60 ret = state++; 61 _libroar_trap_groups[i].id = ret; 62 _libroar_trap_groups[i].name = name; 63 64 return ret; 65 } 66 67 const char * roar_trap_get_groupname(const unsigned int group) { 68 size_t i; 69 70 for (i = 0; i < (sizeof(_libroar_trap_groups)/sizeof(*_libroar_trap_groups)) && _libroar_trap_groups[i].id != -1; i++) { 71 if ( _libroar_trap_groups[i].id == group ) 72 return _libroar_trap_groups[i].name; 73 } 74 75 return NULL; 76 } 77 78 unsigned int roar_trap_get_groupid(const char * name) { 79 size_t i; 80 81 for (i = 0; i < (sizeof(_libroar_trap_groups)/sizeof(*_libroar_trap_groups)) && _libroar_trap_groups[i].id != -1; i++) { 82 if ( !strcasecmp(_libroar_trap_groups[i].name, name) ) 83 return _libroar_trap_groups[i].id; 84 } 85 86 return -1; 42 87 } 43 88 … … 54 99 break; 55 100 case ROAR_TRAP_WARN: 56 ROAR_WARN("roar_strap_impl(group=%u, name='%s', line=%u, file='%s') = (void)", group, name, line, file); 101 ROAR_WARN("roar_strap_impl(group=%u(\"%s\"), name='%s', line=%u, file='%s') = (void)", 102 group, roar_trap_get_groupname(group), name, line, file); 57 103 break; 58 104 case ROAR_TRAP_ABORT:
Note: See TracChangeset
for help on using the changeset viewer.