KHTML
SharedBuffer.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "config.h"
00027 #include "SharedBuffer.h"
00028
00029 namespace WebCore {
00030
00031 SharedBuffer::SharedBuffer()
00032 {
00033 }
00034
00035 SharedBuffer::SharedBuffer(const char* data, int size)
00036 {
00037 m_buffer.append(data, size);
00038 }
00039
00040 SharedBuffer::SharedBuffer(const unsigned char* data, int size)
00041 {
00042 m_buffer.append(data, size);
00043 }
00044
00045 PassRefPtr<SharedBuffer> SharedBuffer::adoptVector(Vector<char>& vector)
00046 {
00047 RefPtr<SharedBuffer> buffer = create();
00048 buffer->m_buffer.swap(vector);
00049 return buffer.release();
00050 }
00051
00052 unsigned SharedBuffer::size() const
00053 {
00054 if (hasPlatformData())
00055 return platformDataSize();
00056
00057 return m_buffer.size();
00058 }
00059
00060 const char* SharedBuffer::data() const
00061 {
00062 if (hasPlatformData())
00063 return platformData();
00064
00065 return m_buffer.data();
00066 }
00067
00068 void SharedBuffer::append(const char* data, int len)
00069 {
00070 maybeTransferPlatformData();
00071
00072 m_buffer.append(data, len);
00073 }
00074
00075 void SharedBuffer::clear()
00076 {
00077 clearPlatformData();
00078
00079 m_buffer.clear();
00080 }
00081
00082 PassRefPtr<SharedBuffer> SharedBuffer::copy() const
00083 {
00084 return SharedBuffer::create(data(), size());
00085 }
00086
00087
00088 #if !PLATFORM(CF)
00089
00090 inline void SharedBuffer::clearPlatformData()
00091 {
00092 }
00093
00094 inline void SharedBuffer::maybeTransferPlatformData()
00095 {
00096 }
00097
00098 inline bool SharedBuffer::hasPlatformData() const
00099 {
00100 return false;
00101 }
00102
00103 inline const char* SharedBuffer::platformData() const
00104 {
00105 ASSERT_NOT_REACHED();
00106
00107 return 0;
00108 }
00109
00110 inline unsigned SharedBuffer::platformDataSize() const
00111 {
00112 ASSERT_NOT_REACHED();
00113
00114 return 0;
00115 }
00116
00117 #endif
00118
00119 }