blob: 15c8ac7209e3134d5a9817b019241f51e0b86104 [file] [log] [blame]
John Bauman89401822014-05-06 15:04:28 -04001//
2// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
Nicolas Capenscc863da2015-01-21 15:50:55 -05007#include "InfoSink.h"
John Bauman89401822014-05-06 15:04:28 -04008
9void TInfoSinkBase::prefix(TPrefixType message) {
10 switch(message) {
11 case EPrefixNone:
12 break;
13 case EPrefixWarning:
14 sink.append("WARNING: ");
15 break;
16 case EPrefixError:
17 sink.append("ERROR: ");
18 break;
19 case EPrefixInternalError:
20 sink.append("INTERNAL ERROR: ");
21 break;
22 case EPrefixUnimplemented:
23 sink.append("UNIMPLEMENTED: ");
24 break;
25 case EPrefixNote:
26 sink.append("NOTE: ");
27 break;
28 default:
29 sink.append("UNKOWN ERROR: ");
30 break;
31 }
32}
33
34void TInfoSinkBase::location(TSourceLoc loc) {
35 int string = 0, line = 0;
36 DecodeSourceLoc(loc, &string, &line);
37
38 TPersistStringStream stream;
39 if (line)
40 stream << string << ":" << line;
41 else
42 stream << string << ":? ";
43 stream << ": ";
44
45 sink.append(stream.str());
46}
47
48void TInfoSinkBase::message(TPrefixType message, const char* s) {
49 prefix(message);
50 sink.append(s);
51 sink.append("\n");
52}
53
54void TInfoSinkBase::message(TPrefixType message, const char* s, TSourceLoc loc) {
55 prefix(message);
56 location(loc);
57 sink.append(s);
58 sink.append("\n");
59}