+
+
+//
+// A collector of CodeDirectories for hash-agile construction of signatures.
+//
+class CodeDirectorySet : public std::map<CodeDirectory::HashAlgorithm, const CodeDirectory *> {
+public:
+ CodeDirectorySet() { mPrimary = NULL; }
+ ~CodeDirectorySet();
+
+ void add(const CodeDirectory* cd);
+ void populate(DiskRep::Writer* writer) const;
+
+ const CodeDirectory* primary() const;
+ CFArrayRef hashBag() const;
+
+private:
+ mutable const CodeDirectory* mPrimary;
+};