namespace Zipr_SDK { typedef std::map<libIRDB::Instruction_t*,Zipr_SDK::RangeAddress_t> InstructionLocationMap_t; enum ZiprPreference { None, Must, }; class Zipr_t; class ZiprPluginInterface_t { public: virtual void PinningBegin() { } virtual void PinningEnd() { } virtual void DollopBegin() { } virtual void DollopEnd() { } virtual void CallbackLinkingBegin() { } virtual void CallbackLinkingEnd() { } virtual ZiprPreference PlopAddress( const RangeAddress_t &jump, const Dollop_t &dollop, Range_t &place) { return ZiprPreference::None; } virtual bool WillPluginPlop(libIRDB::Instruction_t*) { return false; } virtual size_t WorstCaseInsnSize(libIRDB::Instruction_t*, Zipr_t *) { return 0; } virtual RangeAddress_t PlopInstruction(libIRDB::Instruction_t*, RangeAddress_t, RangeAddress_t &, Zipr_t *) { return 0; } virtual std::string ToString() { return "NamelessPlugin"; } virtual ZiprOptionsNamespace_t *RegisterOptions(ZiprOptionsNamespace_t *) { return new ZiprOptionsNamespace_t(""); } }; }