mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-09-10 11:54:40 +00:00
74 lines
1.3 KiB
C
74 lines
1.3 KiB
C
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||
|
|
||
|
#ifndef mozilla_dom_FileHandleCommon_h
|
||
|
#define mozilla_dom_FileHandleCommon_h
|
||
|
|
||
|
#include "nscore.h"
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
#define DEBUGONLY(...) __VA_ARGS__
|
||
|
#else
|
||
|
#define DEBUGONLY(...) /* nothing */
|
||
|
#endif
|
||
|
|
||
|
struct PRThread;
|
||
|
|
||
|
namespace mozilla {
|
||
|
namespace dom {
|
||
|
|
||
|
class RefCountedObject
|
||
|
{
|
||
|
public:
|
||
|
NS_IMETHOD_(MozExternalRefCountType)
|
||
|
AddRef() = 0;
|
||
|
|
||
|
NS_IMETHOD_(MozExternalRefCountType)
|
||
|
Release() = 0;
|
||
|
|
||
|
protected:
|
||
|
virtual ~RefCountedObject()
|
||
|
{ }
|
||
|
};
|
||
|
|
||
|
class ThreadObject
|
||
|
{
|
||
|
DEBUGONLY(PRThread* mOwningThread;)
|
||
|
|
||
|
public:
|
||
|
explicit ThreadObject(DEBUGONLY(PRThread* aOwningThread))
|
||
|
DEBUGONLY(: mOwningThread(aOwningThread))
|
||
|
{ }
|
||
|
|
||
|
virtual ~ThreadObject()
|
||
|
{ }
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
void
|
||
|
AssertIsOnOwningThread() const;
|
||
|
|
||
|
PRThread*
|
||
|
OwningThread() const;
|
||
|
#else
|
||
|
void
|
||
|
AssertIsOnOwningThread() const
|
||
|
{ }
|
||
|
#endif
|
||
|
};
|
||
|
|
||
|
class RefCountedThreadObject
|
||
|
: public RefCountedObject
|
||
|
, public ThreadObject
|
||
|
{
|
||
|
public:
|
||
|
explicit RefCountedThreadObject(DEBUGONLY(PRThread* aOwningThread))
|
||
|
: ThreadObject(DEBUGONLY(aOwningThread))
|
||
|
{ }
|
||
|
};
|
||
|
|
||
|
} // namespace dom
|
||
|
} // namespace mozilla
|
||
|
|
||
|
#endif // mozilla_dom_FileHandleCommon_h
|