Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F121654663
RoadLogEvent.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Jul 12, 21:01
Size
3 KB
Mime Type
text/x-c
Expires
Mon, Jul 14, 21:01 (2 d)
Engine
blob
Format
Raw Data
Handle
27368080
Attached To
rCADDMESH CADD_mesher
RoadLogEvent.cpp
View Options
/****************************************************************************
**
** Copyright (c) 2008-2015 C.B. Barber. All rights reserved.
** $Id: //main/2015/qhull/src/libqhullcpp/RoadLogEvent.cpp#3 $$Change: 2066 $
** $Date: 2016/01/18 $$Author: bbarber $
**
****************************************************************************/
#
//! RoadLogEvent -- All exceptions thrown by Qhull are RoadErrors
#include "libqhullcpp/RoadLogEvent.h"
#include <string>
#include <sstream>
#include <iostream>
using
std
::
cout
;
using
std
::
endl
;
using
std
::
ostringstream
;
using
std
::
string
;
#ifdef _MSC_VER
// Microsoft Visual C++ -- warning level 4
#endif
namespace
orgQhull
{
#
//!\name Conversion
string
RoadLogEvent
::
toString
(
const
char
*
tag
,
int
code
)
const
{
ostringstream
os
;
if
(
tag
&&
code
){
os
<<
tag
<<
code
;
if
(
format_string
){
os
<<
" "
;
}
}
if
(
!
format_string
){
return
os
.
str
();
}
const
char
*
s
=
format_string
;
int
dCount
=
0
;
// Count of %d
int
fCount
=
0
;
// Count of %f
char
extraCode
=
'\0'
;
while
(
*
s
){
if
(
*
s
!=
'%'
){
os
<<
*
s
++
;
}
else
{
char
c
=
*++
s
;
s
++
;
switch
(
c
){
case
'd'
:
if
(
++
dCount
>
2
){
os
<<
" ERROR_three_%d_in_format "
;
}
else
if
(
dCount
==
2
){
os
<<
int_2
;
}
else
{
os
<<
int_1
;
}
break
;
case
'e'
:
if
(
firstExtraCode
(
os
,
c
,
&
extraCode
)){
os
<<
double_1
;
}
break
;
case
'f'
:
if
(
++
fCount
>
1
){
os
<<
" ERROR_two_%f_in_format "
;
}
else
{
os
<<
float_1
;
}
break
;
case
'i'
:
if
(
firstExtraCode
(
os
,
c
,
&
extraCode
)){
os
<<
int64_1
;
}
break
;
case
's'
:
if
(
firstExtraCode
(
os
,
c
,
&
extraCode
)){
os
<<
cstr_1
;
}
break
;
case
'u'
:
if
(
firstExtraCode
(
os
,
c
,
&
extraCode
)){
os
<<
"0x"
<<
std
::
hex
<<
int64_1
<<
std
::
dec
;
}
break
;
case
'x'
:
if
(
firstExtraCode
(
os
,
c
,
&
extraCode
)){
os
<<
void_1
;
}
break
;
case
'%'
:
os
<<
c
;
break
;
default
:
os
<<
" ERROR_%"
<<
c
<<
"_not_defined_in_format"
;
break
;
}
}
}
if
(
s
[
-
1
]
!=
'\n'
){
os
<<
endl
;
}
return
os
.
str
();
}
//toString
#
//!\name Class helpers (static)
//! True if this char is the first extra code
bool
RoadLogEvent
::
firstExtraCode
(
std
::
ostream
&
os
,
char
c
,
char
*
extraCode
){
if
(
*
extraCode
){
os
<<
" ERROR_%"
<<
*
extraCode
<<
"_and_%"
<<
c
<<
"_in_format "
;
return
false
;
}
*
extraCode
=
c
;
return
true
;
}
//firstExtraCode
}
//namespace orgQhull
Event Timeline
Log In to Comment