1// Copyright 2014 The Android Open Source Project
2//
3// This software is licensed under the terms of the GNU General Public
4// License version 2, as published by the Free Software Foundation, and
5// may be copied, distributed, and modified under those terms.
6//
7// This program is distributed in the hope that it will be useful,
8// but WITHOUT ANY WARRANTY; without even the implied warranty of
9// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10// GNU General Public License for more details.
11
12#ifndef ANDROID_BASE_STRING_FORMAT_H
13#define ANDROID_BASE_STRING_FORMAT_H
14
15#include "android/base/String.h"
16
17#include <stdarg.h>
18
19namespace android {
20namespace base {
21
22// Create a new String instance that contains the printf-style formatted
23// output from |format| and potentially any following arguments.
24String StringFormat(const char* format, ...);
25
26// A variant of StringFormat() which uses a va_list to list formatting
27// parameters instead.
28String StringFormatWithArgs(const char* format, va_list args);
29
30// Appends a formatted string at the end of an existing string.
31// |string| is the target String instance, |format| the format string,
32// followed by any formatting parameters. This is more efficient than
33// appending the result of StringFormat(format,...) to |*string| directly.
34void StringAppendFormat(String* string, const char* format, ...);
35
36// A variant of StringAppendFormat() that takes a va_list to list
37// formatting parameters.
38void StringAppendFormatWithArgs(String* string,
39                                const char* format,
40                                va_list args);
41
42}  // namespace base
43}  // namespace android
44
45#endif  // ANDROID_BASE_STRING_FORMAT_H
46