10bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch/* 20bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2009 Torch Mobile, Inc. All rights reserved. 30bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 40bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Redistribution and use in source and binary forms, with or without 50bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * modification, are permitted provided that the following conditions 60bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * are met: 70bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 1. Redistributions of source code must retain the above copyright 80bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * notice, this list of conditions and the following disclaimer. 90bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright 100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * notice, this list of conditions and the following disclaimer in the 110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * documentation and/or other materials provided with the distribution. 120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * This library is distributed in the hope that i will be useful, 140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * but WITHOUT ANY WARRANTY; without even the implied warranty of 150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Library General Public License for more details. 170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * 180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * You should have received a copy of the GNU Library General Public License 190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * along with this library; see the file COPYING.LIB. If not, write to 200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Boston, MA 02110-1301, USA. 220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch */ 230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 2568513a70bcd92384395513322f1b801e7bf9c729Steve Block#ifndef LocalStorageThreadWinCE_h 2668513a70bcd92384395513322f1b801e7bf9c729Steve Block#define LocalStorageThreadWinCE_h 270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include <wtf/Deque.h> 290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include <wtf/PassRefPtr.h> 300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochnamespace WebCore { 320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch class StorageAreaSync; 340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch class LocalStorageTask; 350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch class LocalStorageThread : public RefCounted<LocalStorageThread> { 370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch public: 380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch static PassRefPtr<LocalStorageThread> create() { return adoptRef(new LocalStorageThread); } 390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch ~LocalStorageThread(); 410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool start(); 420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void scheduleImport(PassRefPtr<StorageAreaSync>); 430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void scheduleSync(PassRefPtr<StorageAreaSync>); 440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void terminate(); 450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void performTerminate(); 460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch private: 480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch LocalStorageThread(); 490bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 500bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void timerFired(Timer<LocalStorageThread>*); 510bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 520bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch Deque<RefPtr<LocalStorageTask> > m_queue; 530bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch Timer<LocalStorageThread> m_timer; 540bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch }; 550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 560bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} // namespace WebCore 570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 5868513a70bcd92384395513322f1b801e7bf9c729Steve Block#endif // LocalStorageThreadWinCE_h 59