1 // Copyright 2017 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_ZUCCHINI_DISASSEMBLER_NO_OP_H_ 6 #define COMPONENTS_ZUCCHINI_DISASSEMBLER_NO_OP_H_ 7 8 #include <memory> 9 #include <string> 10 #include <vector> 11 12 #include "components/zucchini/buffer_view.h" 13 #include "components/zucchini/disassembler.h" 14 #include "components/zucchini/image_utils.h" 15 16 namespace zucchini { 17 18 // This disassembler works on any file and does not look for reference. 19 class DisassemblerNoOp : public Disassembler { 20 public: 21 static constexpr uint16_t kVersion = 1; 22 23 DisassemblerNoOp(); 24 DisassemblerNoOp(const DisassemblerNoOp&) = delete; 25 const DisassemblerNoOp& operator=(const DisassemblerNoOp&) = delete; 26 ~DisassemblerNoOp() override; 27 28 // Disassembler: 29 ExecutableType GetExeType() const override; 30 std::string GetExeTypeString() const override; 31 std::vector<ReferenceGroup> MakeReferenceGroups() const override; 32 33 private: 34 friend Disassembler; 35 36 bool Parse(ConstBufferView image) override; 37 }; 38 39 } // namespace zucchini 40 41 #endif // COMPONENTS_ZUCCHINI_DISASSEMBLER_NO_OP_H_ 42