0001 #ifndef BREADCRUMB_HEADER
0002 #define BREADCRUMB_HEADER
0003
0004 #ifdef __cplusplus
0005 namespace cgreen {
0006 extern "C" {
0007 #endif
0008
0009 struct CgreenBreadcrumb_ {
0010 const char **trail;
0011 int depth;
0012 int space;
0013 };
0014
0015 typedef struct CgreenBreadcrumb_ CgreenBreadcrumb;
0016
0017 CgreenBreadcrumb *create_breadcrumb(void);
0018 void destroy_breadcrumb(CgreenBreadcrumb *breadcrumb);
0019 void push_breadcrumb(CgreenBreadcrumb *breadcrumb, const char *name);
0020 void pop_breadcrumb(CgreenBreadcrumb *breadcrumb);
0021 const char *get_current_from_breadcrumb(CgreenBreadcrumb *breadcrumb);
0022 int get_breadcrumb_depth(CgreenBreadcrumb *breadcrumb);
0023 void walk_breadcrumb(CgreenBreadcrumb *breadcrumb, void (*walker)(const char *, void *), void *memo);
0024
0025 #ifdef __cplusplus
0026 }
0027 }
0028 #endif
0029
0030 #endif