mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 15:23:51 +00:00
f49b2c8d86
Similar to the previous change to NewObjectInputStreamFromBuffer, we want to make the ownership transfer out of NewBufferFromStorageStream more obvious. Doing this also lets us get rid of some uses of nsAutoArrayPtr, which is less idiomatic than UniquePtr.
44 lines
1.8 KiB
C++
44 lines
1.8 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
|
|
/* 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 nsStartupCacheUtils_h_
|
|
#define nsStartupCacheUtils_h_
|
|
|
|
#include "nsIStorageStream.h"
|
|
#include "nsIObjectInputStream.h"
|
|
#include "nsIObjectOutputStream.h"
|
|
#include "mozilla/UniquePtr.h"
|
|
|
|
namespace mozilla {
|
|
namespace scache {
|
|
|
|
NS_EXPORT nsresult
|
|
NewObjectInputStreamFromBuffer(UniquePtr<char[]> buffer, uint32_t len,
|
|
nsIObjectInputStream** stream);
|
|
|
|
// We can't retrieve the wrapped stream from the objectOutputStream later,
|
|
// so we return it here. We give callers in debug builds the option
|
|
// to wrap the outputstream in a debug stream, which will detect if
|
|
// non-singleton objects are written out multiple times during a serialization.
|
|
// This could cause them to be deserialized incorrectly (as multiple copies
|
|
// instead of references).
|
|
NS_EXPORT nsresult
|
|
NewObjectOutputWrappedStorageStream(nsIObjectOutputStream **wrapperStream,
|
|
nsIStorageStream** stream,
|
|
bool wantDebugStream);
|
|
|
|
// Creates a buffer for storing the stream into the cache. The buffer is
|
|
// allocated with 'new []'. After calling this function, the caller would
|
|
// typically call nsIStartupCache::PutBuffer with the returned buffer.
|
|
NS_EXPORT nsresult
|
|
NewBufferFromStorageStream(nsIStorageStream *storageStream,
|
|
UniquePtr<char[]>* buffer, uint32_t* len);
|
|
|
|
NS_EXPORT nsresult
|
|
PathifyURI(nsIURI *in, nsACString &out);
|
|
} // namespace scache
|
|
} // namespace mozilla
|
|
|
|
#endif //nsStartupCacheUtils_h_
|