summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/SharedBuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/SharedBuffer.h')
-rw-r--r--WebCore/platform/SharedBuffer.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/WebCore/platform/SharedBuffer.h b/WebCore/platform/SharedBuffer.h
index 0ab7ef5..eb5c167 100644
--- a/WebCore/platform/SharedBuffer.h
+++ b/WebCore/platform/SharedBuffer.h
@@ -30,9 +30,11 @@
#include <wtf/Forward.h>
#include <wtf/Vector.h>
-#if PLATFORM(MAC)
+#if PLATFORM(CF)
#include <wtf/RetainPtr.h>
+#endif
+#if PLATFORM(MAC)
#ifdef __OBJC__
@class NSData;
#else
@@ -45,18 +47,22 @@ namespace WebCore {
class SharedBuffer : public RefCounted<SharedBuffer> {
public:
- SharedBuffer();
- SharedBuffer(const char*, int);
- SharedBuffer(const unsigned char*, int);
+ static PassRefPtr<SharedBuffer> create() { return adoptRef(new SharedBuffer); }
+ static PassRefPtr<SharedBuffer> create(const char* c, int i) { return adoptRef(new SharedBuffer(c, i)); }
+ static PassRefPtr<SharedBuffer> create(const unsigned char* c, int i) { return adoptRef(new SharedBuffer(c, i)); }
static PassRefPtr<SharedBuffer> createWithContentsOfFile(const String& filePath);
+
+ static PassRefPtr<SharedBuffer> adoptVector(Vector<char>& vector);
#if PLATFORM(MAC)
NSData *createNSData();
- CFDataRef createCFData();
static PassRefPtr<SharedBuffer> wrapNSData(NSData *data);
#endif
-
+#if PLATFORM(CF)
+ CFDataRef createCFData();
+#endif
+
const char* data() const;
unsigned size() const;
const Vector<char> &buffer() { return m_buffer; }
@@ -71,14 +77,18 @@ public:
PassRefPtr<SharedBuffer> copy() const;
private:
+ SharedBuffer();
+ SharedBuffer(const char*, int);
+ SharedBuffer(const unsigned char*, int);
+
void clearPlatformData();
void maybeTransferPlatformData();
bool hasPlatformData() const;
Vector<char> m_buffer;
-#if PLATFORM(MAC)
- SharedBuffer(NSData *nsdata);
- RetainPtr<NSData> m_nsData;
+#if PLATFORM(CF)
+ SharedBuffer(CFDataRef);
+ RetainPtr<CFDataRef> m_cfData;
#endif
};