Menu
Home
Blog
Add-ons
Forum
Wiki
Developers
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
components
devices
device
src
sbDeviceRequestThreadQueue.h
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* vim: set sw=2 :miv */
3
/*
4
*=BEGIN SONGBIRD GPL
5
*
6
* This file is part of the Songbird web player.
7
*
8
* Copyright(c) 2005-2011 POTI, Inc.
9
* http://www.songbirdnest.com
10
*
11
* This file may be licensed under the terms of of the
12
* GNU General Public License Version 2 (the ``GPL'').
13
*
14
* Software distributed under the License is distributed
15
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
16
* express or implied. See the GPL for the specific language
17
* governing rights and limitations.
18
*
19
* You should have received a copy of the GPL along with this
20
* program. If not, go to http://www.gnu.org/licenses/gpl.html
21
* or write to the Free Software Foundation, Inc.,
22
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23
*
24
*=END SONGBIRD GPL
25
*/
26
27
#ifndef SBDEVICEREQUESTTHREADQUEUE_H_
28
#define SBDEVICEREQUESTTHREADQUEUE_H_
29
30
// Mozzila includes
31
#include <nsAutoPtr.h>
32
#include <pldhash.h>
33
34
// Mozilla interfaces
35
#include "
sbRequestThreadQueue.h
"
36
37
class
nsIMutableArray;
38
class
sbBaseDevice
;
39
40
class
sbDeviceRequestThreadQueue
:
public
sbRequestThreadQueue
41
{
42
public
:
43
static
sbDeviceRequestThreadQueue
*
New
();
44
nsresult
Start
(
sbBaseDevice
* aBaseDevice);
45
private
:
46
// There is a cycle between the device, thread queue processor and the actions
47
// this will be broken on disconnect. We manually manage the ref count due
48
// to the ambiguities of nsISupports..
49
sbBaseDevice
* mBaseDevice;
50
sbDeviceRequestThreadQueue
();
51
~
sbDeviceRequestThreadQueue
();
52
static
PLDHashOperator RemoveLibraryEnumerator(
53
nsISupports
* aList,
54
nsCOMPtr<nsIMutableArray> & aItems,
55
void
* aUserArg);
56
60
virtual
nsresult OnThreadStop();
61
68
virtual
nsresult IsDuplicateRequest(
sbRequestItem
* aItem1,
69
sbRequestItem
* aItem2,
70
bool
& aIsDuplicate,
71
bool
& aContinueChecking);
72
77
virtual
nsresult ProcessBatch(
Batch
& aBatch);
78
83
virtual
void
CompleteRequests();
84
89
virtual
nsresult CleanupBatch(
Batch
& aBatch);
90
};
91
92
#endif
sbRequestThreadQueue::Batch
Definition:
sbRequestThreadQueue.h:77
sbRequestThreadQueue
Definition:
sbRequestThreadQueue.h:65
sbDeviceRequestThreadQueue::New
static sbDeviceRequestThreadQueue * New()
Definition:
sbDeviceRequestThreadQueue.cpp:44
sbRequestThreadQueue::Start
nsresult Start()
Definition:
sbRequestThreadQueue.cpp:285
sbBaseDevice
Definition:
sbBaseDevice.h:99
sbRequestItem
Definition:
sbRequestItem.h:44
sbDeviceRequestThreadQueue
Definition:
sbDeviceRequestThreadQueue.h:40
sbRequestThreadQueue.h
nsISupports
nsISupports
Definition:
sbRemoteIndexedMediaItem.cpp:61