ChromiumDataObjectItem.h [plain text]
#ifndef ChromiumDataObjectItem_h
#define ChromiumDataObjectItem_h
#if ENABLE(DATA_TRANSFER_ITEMS)
#include "File.h"
#include "KURL.h"
#include "SharedBuffer.h"
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class Blob;
class ScriptExecutionContext;
class StringCallback;
class ChromiumDataObjectItem : public RefCounted<ChromiumDataObjectItem> {
public:
static PassRefPtr<ChromiumDataObjectItem> createFromString(const String& type, const String& data);
static PassRefPtr<ChromiumDataObjectItem> createFromFile(PassRefPtr<File>);
static PassRefPtr<ChromiumDataObjectItem> createFromURL(const String& url, const String& title);
static PassRefPtr<ChromiumDataObjectItem> createFromHTML(const String& html, const KURL& baseURL);
static PassRefPtr<ChromiumDataObjectItem> createFromSharedBuffer(const String& filename, PassRefPtr<SharedBuffer>);
static PassRefPtr<ChromiumDataObjectItem> createFromPasteboard(const String& type, uint64_t sequenceNumber);
String kind() const { return m_kind; }
String type() const { return m_type; }
void getAsString(PassRefPtr<StringCallback>, ScriptExecutionContext*) const;
PassRefPtr<Blob> getAsFile() const;
String internalGetAsString() const;
PassRefPtr<SharedBuffer> sharedBuffer() const { return m_sharedBuffer; }
String title() const { return m_title; }
KURL baseURL() const { return m_baseURL; }
bool isFilename() const;
private:
enum DataSource {
PasteboardSource,
InternalSource,
};
ChromiumDataObjectItem(const String& kind, const String& type);
ChromiumDataObjectItem(const String& kind, const String& type, uint64_t sequenceNumber);
DataSource m_source;
String m_kind;
String m_type;
String m_data;
RefPtr<File> m_file;
RefPtr<SharedBuffer> m_sharedBuffer;
String m_title;
KURL m_baseURL;
uint64_t m_sequenceNumber; };
}
#endif // ENABLE(DATA_TRANSFER_ITEMS)
#endif // ChromiumDataObjectItem_h