Files
tubestation/intl/strres/nsIStringBundle.idl
Sandor Molnar abe7f841ca Backed out 4 changesets (bug 1454816) for causing build bustages. CLOSED TREE
Backed out changeset 3e8d2c47138c (bug 1454816)
Backed out changeset 80ff20241831 (bug 1454816)
Backed out changeset 28c2d6d2a683 (bug 1454816)
Backed out changeset 236943ab4142 (bug 1454816)
2024-10-21 20:15:13 +03:00

112 lines
4.1 KiB
Plaintext

/* -*- Mode: IDL; 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/. */
#include "nsISupports.idl"
#include "nsISimpleEnumerator.idl"
%{C++
#include "mozilla/MemoryReporting.h"
namespace mozilla {
namespace dom {
class ContentParent;
}
namespace ipc {
class FileDescriptor;
}
}
// Define Contractid and CID
// {D85A17C1-AA7C-11d2-9B8C-00805F8A16D9}
#define NS_STRINGBUNDLESERVICE_CID \
{ 0xd85a17c1, 0xaa7c, 0x11d2, \
{ 0x9b, 0x8c, 0x0, 0x80, 0x5f, 0x8a, 0x16, 0xd9 } }
#define NS_STRINGBUNDLE_CONTRACTID "@mozilla.org/intl/stringbundle;1"
%}
[ptr] native ContentParent(mozilla::dom::ContentParent);
[ref] native FileDescriptor(mozilla::ipc::FileDescriptor);
native MallocSizeOf(mozilla::MallocSizeOf);
[scriptable, builtinclass, uuid(D85A17C2-AA7C-11d2-9B8C-00805F8A16D9)]
interface nsIStringBundle : nsISupports
{
AString GetStringFromID(in long aID);
// This method is mostly used from JS, where AUTF8String is appropriate.
[binaryname(GetStringFromAUTF8Name)]
AString GetStringFromName(in AUTF8String aName);
// This method is mostly used from C++, where |string| is appropriate because
// the names are most often 8-bit string literals (normally ASCII, though
// u8"foo" literals will also work).
[noscript, binaryname(GetStringFromName)]
AString GetStringFromNameCpp(in string aName);
// this is kind of like ssprintf - except that you can
// only pass it unicode strings, using the %S formatting character.
// the id or name should refer to a string in the bundle that
// uses %S.. do NOT try to use any other types.
// this uses nsTextFormatter::ssprintf to do the dirty work.
AString formatStringFromID(in long aID, in Array<AString> params);
// This method is mostly used from JS, where AUTF8String is appropriate.
[binaryname(FormatStringFromAUTF8Name)]
AString formatStringFromName(in AUTF8String aName, in Array<AString> params);
// This method is mostly used from C++, where |string| is appropriate because
// the names are most often 8-bit string literals (normally ASCII, though
// u8"foo" literals will also work).
[noscript, binaryname(FormatStringFromName)]
AString formatStringFromNameCpp(in string aName, in Array<AString> params);
/*
Implements nsISimpleEnumerator, replaces nsIEnumerator
*/
nsISimpleEnumerator getSimpleEnumeration();
// Preloads string bundle data asynchronously
void asyncPreload();
[notxpcom, nostdcall] size_t SizeOfIncludingThis(in MallocSizeOf aMallocSizeOf);
[notxpcom, nostdcall] size_t SizeOfIncludingThisIfUnshared(in MallocSizeOf aMallocSizeOf);
};
[scriptable, builtinclass, uuid(D85A17C0-AA7C-11d2-9B8C-00805F8A16D9)]
interface nsIStringBundleService : nsISupports
{
nsIStringBundle createBundle(in string aURLSpec);
/**
* Formats a message string from a status code and status arguments.
* @param aStatus - The status code. This is mapped into a string ID and
* used in the string lookup process.
* @param aStatusArg - The status message argument(s). Multiple arguments
* can be separated by newline ('\n') characters.
* @return the formatted message
*/
AString formatStatusMessage(in nsresult aStatus, in wstring aStatusArg);
/**
* flushes the string bundle cache - useful when the locale changes or
* when we need to get some extra memory back
*
* at some point, we might want to make this flush all the bundles,
* because any bundles that are floating around when the locale changes
* will suddenly contain bad data
*
*/
void flushBundles();
[notxpcom, nostdcall] size_t sizeOfIncludingThis(in MallocSizeOf aMallocSizeOf);
[notxpcom, nostdcall] void sendContentBundles(in ContentParent aContentParent);
[notxpcom, nostdcall] void registerContentBundle(in ACString aBundleURL,
[const] in FileDescriptor aMapFile,
in size_t aMapSize);
};