record.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * This file is part of the zlog Library.
  3. *
  4. * Copyright (C) 2011 by Hardy Simpson <HardySimpson1984@gmail.com>
  5. *
  6. * Licensed under the LGPL v2.1, see the file COPYING in base directory.
  7. */
  8. #include "errno.h"
  9. #include "zc_defs.h"
  10. #include "record.h"
  11. void zlog_record_profile(zlog_record_t *a_record, int flag)
  12. {
  13. zc_assert(a_record,);
  14. zc_profile(flag, "--record:[%p][%s:%p]--", a_record, a_record->name, a_record->output);
  15. return;
  16. }
  17. void zlog_record_del(zlog_record_t *a_record)
  18. {
  19. zc_assert(a_record,);
  20. zc_debug("zlog_record_del[%p]", a_record);
  21. free(a_record);
  22. return;
  23. }
  24. zlog_record_t *zlog_record_new(const char *name, zlog_record_fn output)
  25. {
  26. zlog_record_t *a_record;
  27. zc_assert(name, NULL);
  28. zc_assert(output, NULL);
  29. a_record = calloc(1, sizeof(zlog_record_t));
  30. if (!a_record) {
  31. zc_error("calloc fail, errno[%d]", errno);
  32. return NULL;
  33. }
  34. if (strlen(name) > sizeof(a_record->name) - 1) {
  35. zc_error("name[%s] is too long", name);
  36. goto err;
  37. }
  38. strcpy(a_record->name, name);
  39. a_record->output = output;
  40. zlog_record_profile(a_record, ZC_DEBUG);
  41. return a_record;
  42. err:
  43. zlog_record_del(a_record);
  44. return NULL;
  45. }