#ifndef WebArchive_h
#define WebArchive_h
#if PLATFORM(COCOA)
#include "APIObject.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
namespace API {
class Array;
class Data;
}
namespace WebCore {
class LegacyWebArchive;
class Range;
}
namespace API {
class WebArchiveResource;
class WebArchive : public API::ObjectImpl<API::Object::Type::WebArchive> {
public:
virtual ~WebArchive();
static PassRefPtr<WebArchive> create(WebArchiveResource* mainResource, PassRefPtr<API::Array> subresources, PassRefPtr<API::Array> subframeArchives);
static PassRefPtr<WebArchive> create(API::Data*);
static PassRefPtr<WebArchive> create(PassRefPtr<WebCore::LegacyWebArchive>);
static PassRefPtr<WebArchive> create(WebCore::Range*);
WebArchiveResource* mainResource();
API::Array* subresources();
API::Array* subframeArchives();
PassRefPtr<API::Data> data();
WebCore::LegacyWebArchive* coreLegacyWebArchive();
private:
WebArchive(WebArchiveResource* mainResource, PassRefPtr<API::Array> subresources, PassRefPtr<API::Array> subframeArchives);
WebArchive(API::Data*);
WebArchive(PassRefPtr<WebCore::LegacyWebArchive>);
RefPtr<WebCore::LegacyWebArchive> m_legacyWebArchive;
RefPtr<WebArchiveResource> m_cachedMainResource;
RefPtr<API::Array> m_cachedSubresources;
RefPtr<API::Array> m_cachedSubframeArchives;
};
}
#endif // PLATFORM(COCOA)
#endif // WebArchive_h