Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Side by Side Diff: third_party/protobuf/src/google/protobuf/stubs/common.cc

Issue 1322483002: Revert https://codereview.chromium.org/1291903002 (protobuf roll). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // http://code.google.com/p/protobuf/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above 11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer 12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the 13 // in the documentation and/or other materials provided with the
(...skipping 11 matching lines...) Expand all
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 30
31 // Author: kenton@google.com (Kenton Varda) 31 // Author: kenton@google.com (Kenton Varda)
32 32
33 #include <google/protobuf/stubs/common.h> 33 #include <google/protobuf/stubs/common.h>
34 #include <google/protobuf/stubs/once.h> 34 #include <google/protobuf/stubs/once.h>
35 #include <google/protobuf/stubs/status.h>
36 #include <google/protobuf/stubs/stringpiece.h>
37 #include <google/protobuf/stubs/strutil.h>
38 #include <stdio.h> 35 #include <stdio.h>
39 #include <errno.h> 36 #include <errno.h>
40 #include <vector> 37 #include <vector>
41 38
39 #include "config.h"
40
42 #ifdef _WIN32 41 #ifdef _WIN32
43 #define WIN32_LEAN_AND_MEAN // We only need minimal includes 42 #define WIN32_LEAN_AND_MEAN // We only need minimal includes
44 #include <windows.h> 43 #include <windows.h>
45 #define snprintf _snprintf // see comment in strutil.cc 44 #define snprintf _snprintf // see comment in strutil.cc
46 #elif defined(HAVE_PTHREAD) 45 #elif defined(HAVE_PTHREAD)
47 #include <pthread.h> 46 #include <pthread.h>
48 #else 47 #else
49 #error "No suitable threading library available." 48 #error "No suitable threading library available."
50 #endif 49 #endif
51 50
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 const string& message) { 108 const string& message) {
110 static const char* level_names[] = { "INFO", "WARNING", "ERROR", "FATAL" }; 109 static const char* level_names[] = { "INFO", "WARNING", "ERROR", "FATAL" };
111 110
112 // We use fprintf() instead of cerr because we want this to work at static 111 // We use fprintf() instead of cerr because we want this to work at static
113 // initialization time. 112 // initialization time.
114 fprintf(stderr, "[libprotobuf %s %s:%d] %s\n", 113 fprintf(stderr, "[libprotobuf %s %s:%d] %s\n",
115 level_names[level], filename, line, message.c_str()); 114 level_names[level], filename, line, message.c_str());
116 fflush(stderr); // Needed on MSVC. 115 fflush(stderr); // Needed on MSVC.
117 } 116 }
118 117
119 void NullLogHandler(LogLevel /* level */, const char* /* filename */, 118 void NullLogHandler(LogLevel level, const char* filename, int line,
120 int /* line */, const string& /* message */) { 119 const string& message) {
121 // Nothing. 120 // Nothing.
122 } 121 }
123 122
124 static LogHandler* log_handler_ = &DefaultLogHandler; 123 static LogHandler* log_handler_ = &DefaultLogHandler;
125 static int log_silencer_count_ = 0; 124 static int log_silencer_count_ = 0;
126 125
127 static Mutex* log_silencer_count_mutex_ = NULL; 126 static Mutex* log_silencer_count_mutex_ = NULL;
128 GOOGLE_PROTOBUF_DECLARE_ONCE(log_silencer_count_init_); 127 GOOGLE_PROTOBUF_DECLARE_ONCE(log_silencer_count_init_);
129 128
130 void DeleteLogSilencerCount() { 129 void DeleteLogSilencerCount() {
(...skipping 11 matching lines...) Expand all
142 LogMessage& LogMessage::operator<<(const string& value) { 141 LogMessage& LogMessage::operator<<(const string& value) {
143 message_ += value; 142 message_ += value;
144 return *this; 143 return *this;
145 } 144 }
146 145
147 LogMessage& LogMessage::operator<<(const char* value) { 146 LogMessage& LogMessage::operator<<(const char* value) {
148 message_ += value; 147 message_ += value;
149 return *this; 148 return *this;
150 } 149 }
151 150
152 LogMessage& LogMessage::operator<<(const StringPiece& value) {
153 message_ += value.ToString();
154 return *this;
155 }
156
157 LogMessage& LogMessage::operator<<(long long value) {
158 message_ += SimpleItoa(value);
159 return *this;
160 }
161
162 LogMessage& LogMessage::operator<<(unsigned long long value) {
163 message_ += SimpleItoa(value);
164 return *this;
165 }
166
167 LogMessage& LogMessage::operator<<(
168 const ::google::protobuf::util::Status& status) {
169 message_ += status.ToString();
170 return *this;
171 }
172
173 // Since this is just for logging, we don't care if the current locale changes 151 // Since this is just for logging, we don't care if the current locale changes
174 // the results -- in fact, we probably prefer that. So we use snprintf() 152 // the results -- in fact, we probably prefer that. So we use snprintf()
175 // instead of Simple*toa(). 153 // instead of Simple*toa().
176 #undef DECLARE_STREAM_OPERATOR 154 #undef DECLARE_STREAM_OPERATOR
177 #define DECLARE_STREAM_OPERATOR(TYPE, FORMAT) \ 155 #define DECLARE_STREAM_OPERATOR(TYPE, FORMAT) \
178 LogMessage& LogMessage::operator<<(TYPE value) { \ 156 LogMessage& LogMessage::operator<<(TYPE value) { \
179 /* 128 bytes should be big enough for any of the primitive */ \ 157 /* 128 bytes should be big enough for any of the primitive */ \
180 /* values which we print with this, but well use snprintf() */ \ 158 /* values which we print with this, but well use snprintf() */ \
181 /* anyway to be extra safe. */ \ 159 /* anyway to be extra safe. */ \
182 char buffer[128]; \ 160 char buffer[128]; \
183 snprintf(buffer, sizeof(buffer), FORMAT, value); \ 161 snprintf(buffer, sizeof(buffer), FORMAT, value); \
184 /* Guard against broken MSVC snprintf(). */ \ 162 /* Guard against broken MSVC snprintf(). */ \
185 buffer[sizeof(buffer)-1] = '\0'; \ 163 buffer[sizeof(buffer)-1] = '\0'; \
186 message_ += buffer; \ 164 message_ += buffer; \
187 return *this; \ 165 return *this; \
188 } 166 }
189 167
190 DECLARE_STREAM_OPERATOR(char , "%c" ) 168 DECLARE_STREAM_OPERATOR(char , "%c" )
191 DECLARE_STREAM_OPERATOR(int , "%d" ) 169 DECLARE_STREAM_OPERATOR(int , "%d" )
192 DECLARE_STREAM_OPERATOR(unsigned int , "%u" ) 170 DECLARE_STREAM_OPERATOR(uint , "%u" )
193 DECLARE_STREAM_OPERATOR(long , "%ld") 171 DECLARE_STREAM_OPERATOR(long , "%ld")
194 DECLARE_STREAM_OPERATOR(unsigned long, "%lu") 172 DECLARE_STREAM_OPERATOR(unsigned long, "%lu")
195 DECLARE_STREAM_OPERATOR(double , "%g" ) 173 DECLARE_STREAM_OPERATOR(double , "%g" )
196 DECLARE_STREAM_OPERATOR(void* , "%p" )
197 #undef DECLARE_STREAM_OPERATOR 174 #undef DECLARE_STREAM_OPERATOR
198 175
199 LogMessage::LogMessage(LogLevel level, const char* filename, int line) 176 LogMessage::LogMessage(LogLevel level, const char* filename, int line)
200 : level_(level), filename_(filename), line_(line) {} 177 : level_(level), filename_(filename), line_(line) {}
201 LogMessage::~LogMessage() {} 178 LogMessage::~LogMessage() {}
202 179
203 void LogMessage::Finish() { 180 void LogMessage::Finish() {
204 bool suppress = false; 181 bool suppress = false;
205 182
206 if (level_ != LOGLEVEL_FATAL) { 183 if (level_ != LOGLEVEL_FATAL) {
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 #if PROTOBUF_USE_EXCEPTIONS 386 #if PROTOBUF_USE_EXCEPTIONS
410 FatalException::~FatalException() throw() {} 387 FatalException::~FatalException() throw() {}
411 388
412 const char* FatalException::what() const throw() { 389 const char* FatalException::what() const throw() {
413 return message_.c_str(); 390 return message_.c_str();
414 } 391 }
415 #endif 392 #endif
416 393
417 } // namespace protobuf 394 } // namespace protobuf
418 } // namespace google 395 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698