2 #include "canvas/canvas_patch.hpp"
3 #include "common/common.hpp"
4 #include "pool/entity.hpp"
5 #include "util/uuid.hpp"
12 enum class RulesCheckCacheID { NONE, BOARD_IMAGE, NET_PINS };
14 class RulesCheckCacheBase {
16 virtual ~RulesCheckCacheBase()
21 class RulesCheckCacheBoardImage :
public RulesCheckCacheBase {
23 RulesCheckCacheBoardImage(
class IDocument *c);
24 const CanvasPatch *get_canvas()
const;
30 class RulesCheckCacheNetPins :
public RulesCheckCacheBase {
32 RulesCheckCacheNetPins(
class IDocument *c);
33 const std::map<
class Net *,
34 std::deque<std::tuple<class Component *, const class Gate *, const class Pin *, UUID, Coordi>>> &
39 std::deque<std::tuple<class Component *, const class Gate *, const class Pin *, UUID, Coordi>>>
43 class RulesCheckCache {
45 RulesCheckCache(
class IDocument *c);
46 RulesCheckCacheBase *get_cache(RulesCheckCacheID
id);
50 std::map<RulesCheckCacheID, std::unique_ptr<RulesCheckCacheBase>> cache;
51 class IDocument *core;