18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB. If not, write to 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA. 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef FormDataList_h 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define FormDataList_h 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "Blob.h" 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "TextEncoding.h" 26dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include <wtf/Forward.h> 27dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <wtf/text/CString.h> 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass FormDataList { 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 335ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen class Item { 345ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen public: 355ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen Item() { } 365ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen Item(const WTF::CString& data) : m_data(data) { } 375ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen Item(PassRefPtr<Blob> blob) : m_blob(blob) { } 385ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 395ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen const WTF::CString& data() const { return m_data; } 405ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen Blob* blob() const { return m_blob.get(); } 415ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 425ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen private: 435ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen WTF::CString m_data; 445ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen RefPtr<Blob> m_blob; 455ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen }; 465ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FormDataList(const TextEncoding&); 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void appendData(const String& key, const String& value) 50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block { 51dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block appendString(key); 52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block appendString(value); 53dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block } 54dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void appendData(const String& key, const CString& value) 55dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block { 56dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block appendString(key); 57dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block appendString(value); 58dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block } 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void appendData(const String& key, int value) 60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block { 61dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block appendString(key); 62dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block appendString(String::number(value)); 63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block } 645ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void appendBlob(const String& key, PassRefPtr<Blob> blob) 655ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen { 665ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen appendString(key); 675ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen appendBlob(blob); 685ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen } 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 705ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen const Vector<Item>& items() const { return m_items; } 71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const TextEncoding& encoding() const { return m_encoding; } 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate: 74dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void appendString(const CString&); 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void appendString(const String&); 765ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void appendBlob(PassRefPtr<Blob>); 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TextEncoding m_encoding; 795ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen Vector<Item> m_items; 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // FormDataList_h 85