mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
f427c884c8
Backed out changeset 8c3aa9973da0 (bug 939294) Backed out changeset 37098c13e59e (bug 939294) Backed out changeset 7c9ade6c871c (bug 939294) Backed out changeset fed59539afc1 (bug 939294) Backed out changeset 89e9d3fa16fc (bug 939294) Backed out changeset c97e58ebc5f4 (bug 939294)
124 lines
2.4 KiB
C++
124 lines
2.4 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* 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_file_metadatahelper_h__
|
|
#define mozilla_dom_file_metadatahelper_h__
|
|
|
|
#include "mozilla/Attributes.h"
|
|
#include "FileCommon.h"
|
|
|
|
#include "nsIFileStreams.h"
|
|
|
|
#include "DictionaryHelpers.h"
|
|
|
|
#include "AsyncHelper.h"
|
|
#include "FileHelper.h"
|
|
|
|
class nsIFileStream;
|
|
|
|
BEGIN_FILE_NAMESPACE
|
|
|
|
class MetadataHelper;
|
|
|
|
class MetadataParameters
|
|
{
|
|
friend class MetadataHelper;
|
|
|
|
public:
|
|
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MetadataParameters)
|
|
|
|
nsresult
|
|
Init(JSContext* aCx, const JS::Value* aVal)
|
|
{
|
|
return mConfig.Init(aCx, aVal);
|
|
}
|
|
|
|
void
|
|
Init(bool aRequestSize, bool aRequestLastModified)
|
|
{
|
|
mConfig.size = aRequestSize;
|
|
mConfig.lastModified = aRequestLastModified;
|
|
}
|
|
|
|
bool
|
|
IsConfigured() const
|
|
{
|
|
return mConfig.size || mConfig.lastModified;
|
|
}
|
|
|
|
bool
|
|
SizeRequested() const
|
|
{
|
|
return mConfig.size;
|
|
}
|
|
|
|
bool
|
|
LastModifiedRequested() const
|
|
{
|
|
return mConfig.lastModified;
|
|
}
|
|
|
|
uint64_t
|
|
Size() const
|
|
{
|
|
return mSize;
|
|
}
|
|
|
|
int64_t
|
|
LastModified() const
|
|
{
|
|
return mLastModified;
|
|
}
|
|
|
|
private:
|
|
mozilla::idl::DOMFileMetadataParameters mConfig;
|
|
|
|
uint64_t mSize;
|
|
int64_t mLastModified;
|
|
};
|
|
|
|
class MetadataHelper : public FileHelper
|
|
{
|
|
public:
|
|
MetadataHelper(LockedFile* aLockedFile,
|
|
FileRequest* aFileRequest,
|
|
MetadataParameters* aParams)
|
|
: FileHelper(aLockedFile, aFileRequest),
|
|
mParams(aParams)
|
|
{ }
|
|
|
|
nsresult
|
|
DoAsyncRun(nsISupports* aStream) MOZ_OVERRIDE;
|
|
|
|
nsresult
|
|
GetSuccessResult(JSContext* aCx, JS::Value* aVal) MOZ_OVERRIDE;
|
|
|
|
protected:
|
|
class AsyncMetadataGetter : public AsyncHelper
|
|
{
|
|
public:
|
|
AsyncMetadataGetter(nsISupports* aStream, MetadataParameters* aParams,
|
|
bool aReadWrite)
|
|
: AsyncHelper(aStream),
|
|
mParams(aParams), mReadWrite(aReadWrite)
|
|
{ }
|
|
|
|
protected:
|
|
nsresult
|
|
DoStreamWork(nsISupports* aStream) MOZ_OVERRIDE;
|
|
|
|
private:
|
|
nsRefPtr<MetadataParameters> mParams;
|
|
bool mReadWrite;
|
|
};
|
|
|
|
nsRefPtr<MetadataParameters> mParams;
|
|
};
|
|
|
|
END_FILE_NAMESPACE
|
|
|
|
#endif // mozilla_dom_file_metadatahelper_h__
|