Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 : /* This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this file,
5 : * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #ifndef mozilla_dom_quota_quotacommon_h__
8 : #define mozilla_dom_quota_quotacommon_h__
9 :
10 : #include "nsCOMPtr.h"
11 : #include "nsDebug.h"
12 : #include "nsPrintfCString.h"
13 : #include "nsString.h"
14 : #include "nsTArray.h"
15 :
16 : #define BEGIN_QUOTA_NAMESPACE \
17 : namespace mozilla { namespace dom { namespace quota {
18 : #define END_QUOTA_NAMESPACE \
19 : } /* namespace quota */ } /* namespace dom */ } /* namespace mozilla */
20 : #define USING_QUOTA_NAMESPACE \
21 : using namespace mozilla::dom::quota;
22 :
23 : #define DSSTORE_FILE_NAME ".DS_Store"
24 :
25 : #define QM_WARNING(...) \
26 : do { \
27 : nsPrintfCString str(__VA_ARGS__); \
28 : mozilla::dom::quota::ReportInternalError(__FILE__, __LINE__, str.get()); \
29 : NS_WARNING(str.get()); \
30 : } while (0)
31 :
32 : class nsIEventTarget;
33 :
34 : BEGIN_QUOTA_NAMESPACE
35 :
36 0 : class BackgroundThreadObject
37 : {
38 : protected:
39 : nsCOMPtr<nsIEventTarget> mOwningThread;
40 :
41 : public:
42 : void
43 : AssertIsOnOwningThread() const
44 : #ifdef DEBUG
45 : ;
46 : #else
47 : { }
48 : #endif
49 :
50 : nsIEventTarget*
51 : OwningThread() const;
52 :
53 : protected:
54 : BackgroundThreadObject();
55 :
56 : explicit BackgroundThreadObject(nsIEventTarget* aOwningThread);
57 : };
58 :
59 : void
60 : AssertIsOnIOThread();
61 :
62 : void
63 : AssertCurrentThreadOwnsQuotaMutex();
64 :
65 : bool
66 : IsOnIOThread();
67 :
68 : void
69 : ReportInternalError(const char* aFile, uint32_t aLine, const char* aStr);
70 :
71 : END_QUOTA_NAMESPACE
72 :
73 : #endif // mozilla_dom_quota_quotacommon_h__
|