@@ -51,8 +51,7 @@ static_assert(sizeof(UUID) == 16, "Guid size mismatch");
5151
5252namespace Firebird {
5353
54- const int GUID_BUFF_SIZE = 39 ;
55- const int GUID_BODY_SIZE = 36 ;
54+ constexpr int GUID_BUFF_SIZE = 39 ;
5655
5756void GenerateRandomBytes (void * buffer, FB_SIZE_T size);
5857
@@ -65,8 +64,10 @@ void GenerateGuid(UUID* guid);
6564class Guid
6665{
6766 // Some versions of MSVC cannot recognize hh specifier but MSVC 2015 has it
68- static constexpr const char * GUID_FORMAT =
69- " {%08X-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX}" ;
67+ #define GUID_FORMAT_BASE " %08X-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX"
68+ static constexpr const char * GUID_FORMAT = " {" GUID_FORMAT_BASE " }" ;
69+ static constexpr const char * GUID_FORMAT_WITHOUT_BRACKETS = GUID_FORMAT_BASE;
70+ #undef GUID_FORMAT_BASE
7071 static constexpr int GUID_FORMAT_ARGS = 11 ;
7172
7273 Guid ()
@@ -121,25 +122,25 @@ class Guid
121122 memcpy (&m_data, buffer, SIZE);
122123 }
123124
124- void toString (char * buffer) const
125+ void toString (char * buffer, bool withBrackets = true ) const
125126 {
126- sprintf (buffer, GUID_FORMAT,
127+ sprintf (buffer, withBrackets ? GUID_FORMAT : GUID_FORMAT_WITHOUT_BRACKETS ,
127128 m_data.Data1 , m_data.Data2 , m_data.Data3 ,
128129 m_data.Data4 [0 ], m_data.Data4 [1 ], m_data.Data4 [2 ], m_data.Data4 [3 ],
129130 m_data.Data4 [4 ], m_data.Data4 [5 ], m_data.Data4 [6 ], m_data.Data4 [7 ]);
130131 }
131132
132- Firebird::string toString () const
133+ Firebird::string toString (bool withBrackets = true ) const
133134 {
134135 Firebird::string result;
135- toString (result.getBuffer (GUID_BUFF_SIZE - 1 ) );
136+ toString (result.getBuffer (GUID_BUFF_SIZE - (withBrackets ? 1 : 3 )), withBrackets );
136137 return result;
137138 }
138139
139- Firebird::PathName toPathName () const
140+ Firebird::PathName toPathName (bool withBrackets = true ) const
140141 {
141142 Firebird::PathName result;
142- toString (result.getBuffer (GUID_BUFF_SIZE - 1 ) );
143+ toString (result.getBuffer (GUID_BUFF_SIZE - (withBrackets ? 1 : 3 )), withBrackets );
143144 return result;
144145 }
145146
0 commit comments