123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /* -*- Mode: C++; tab-width: 8; 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 nsPrintfCString_h___
- #define nsPrintfCString_h___
- #include "nsString.h"
- /**
- * nsPrintfCString lets you create a nsCString using a printf-style format
- * string. For example:
- *
- * NS_WARNING(nsPrintfCString("Unexpected value: %f", 13.917).get());
- *
- * nsPrintfCString has a small built-in auto-buffer. For larger strings, it
- * will allocate on the heap.
- *
- * See also nsCString::AppendPrintf().
- */
- class nsPrintfCString : public nsFixedCString
- {
- typedef nsCString string_type;
- public:
- explicit nsPrintfCString(const char_type* aFormat, ...)
- : nsFixedCString(mLocalBuffer, kLocalBufferSize, 0)
- {
- va_list ap;
- va_start(ap, aFormat);
- AppendPrintf(aFormat, ap);
- va_end(ap);
- }
- private:
- static const uint32_t kLocalBufferSize = 16;
- char_type mLocalBuffer[kLocalBufferSize];
- };
- #endif // !defined(nsPrintfCString_h___)
|