#pragma once
#include "FloatSize.h"
#include "Image.h"
#include <wtf/HashMap.h>
#include <wtf/RefPtr.h>
namespace WebCore {
class CachedImage;
class CachedImageClient;
class ImageBuffer;
class LayoutSize;
class SVGImage;
class SVGImageForContainer;
class RenderObject;
class SVGImageCache {
WTF_MAKE_FAST_ALLOCATED;
public:
explicit SVGImageCache(SVGImage*);
~SVGImageCache();
void removeClientFromCache(const CachedImageClient*);
void setContainerContextForClient(const CachedImageClient&, const LayoutSize&, float, const URL&);
FloatSize imageSizeForRenderer(const RenderObject*) const;
Image* imageForRenderer(const RenderObject*) const;
private:
Image* findImageForRenderer(const RenderObject*) const;
typedef HashMap<const CachedImageClient*, RefPtr<SVGImageForContainer>> ImageForContainerMap;
SVGImage* m_svgImage;
ImageForContainerMap m_imageForContainerMap;
};
}