Index: metadata.h |
diff --git a/metadata.h b/metadata.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..72eb14598023f79b015847225dbaf50c322f4a3a |
--- /dev/null |
+++ b/metadata.h |
@@ -0,0 +1,37 @@ |
+// Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_METADATA_H__ |
+#define CHROMEOS_PLATFORM_UPDATE_ENGINE_METADATA_H__ |
+ |
+#include "update_engine/delta_diff_generator.h" |
+#include "update_engine/graph_types.h" |
+ |
+namespace chromeos_update_engine { |
+ |
+class Metadata { |
+ public: |
+ // Reads metadata from old image and new image and determines |
+ // the smallest way to encode the metadata for the diff. |
+ // If there's no change in the metadata, it creates a MOVE |
+ // operation. If there is a change, the smallest of REPLACE, REPLACE_BZ, |
+ // or BSDIFF wins. It writes the diff to data_fd and updates data_file_size |
+ // accordingly. It also adds the required operation to the graph and adds the |
+ // metadata extents to blocks. |
+ // Returns true on success. |
+ static bool DeltaReadMetadata(Graph* graph, |
+ std::vector<DeltaDiffGenerator::Block>* blocks, |
+ const std::string& old_image, |
+ const std::string& new_image, |
+ int data_fd, |
+ off_t* data_file_size); |
+ |
+ private: |
+ // This should never be constructed. |
+ DISALLOW_IMPLICIT_CONSTRUCTORS(Metadata); |
+}; |
+ |
+}; // namespace chromeos_update_engine |
+ |
+#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_METADATA_H__ |