#ifndef __STATS_H__
#define __STATS_H__
-#include <stdbool.h>
-// #include <stdint.h>
#include <inttypes.h>
+#include <stdbool.h>
+#include "keystructs.h"
#include "ll.h"
-/**
- * struct stats_key - holds key details suitable for doing stats on.
- * @keyid: The keyid.
- * @colour: Used for marking during DFS/BFS.
- * @parent: The key that lead us to this one for DFS/BFS.
- * @sigs: A linked list of the signatures on this key.
- * @gotsigs: A bool indicating if we've initialized the sigs element yet.
- */
-struct stats_key {
- uint64_t keyid;
- int colour;
- uint64_t parent;
- struct ll *sigs;
- bool gotsigs;
-};
-
/**
* initcolour - Clear the key graph ready for use.
* @parent: Do we want to clear the parent pointers too?
*/
unsigned long findpath(struct stats_key *have, struct stats_key *want);
+/**
+ * dofindpath - Given 2 keys displays a path between them.
+ * @have: The key we have.
+ * @want: The key we want to get to.
+ * @html: Should we output in html.
+ *
+ * This does a breadth first search on the key tree, starting with the
+ * key we have. It returns as soon as a path is found or when we run out
+ * of keys; whichever comes sooner.
+ */
+void dofindpath(uint64_t have, uint64_t want, bool html);
struct stats_key *furthestkey(struct stats_key *have);