8#ifndef INCLUDED_BALXML_FORMATTER_PRETTYIMPL
9#define INCLUDED_BALXML_FORMATTER_PRETTYIMPL
62#include <balscm_version.h>
78#include <bsl_ostream.h>
79#include <bsl_string_view.h>
80#include <bsl_vector.h>
247 int d_spacesPerLevel;
341 const int&
column()
const;
387 k_VALUE_STRING_BUFFER_SIZE = 256,
389 k_INFINITE_WRAP_COLUMN = 0
411 static void addAttributeImpl(bsl::ostream& stream,
421 static void addCommentImpl(bsl::ostream& stream,
432 static void addCommentOnNewLineImpl(bsl::ostream& stream,
438 static void addDataImpl(bsl::ostream& stream,
462 static void addListDataImpl(bsl::ostream& stream,
490 template <
class VALUE_TYPE>
492 bsl::ostream& stream,
495 const VALUE_TYPE& value,
496 int formattingMode = 0,
518 bsl::ostream& stream,
521 bool forceNewline =
true);
545 template <
class VALUE_TYPE>
547 bsl::ostream& stream,
549 const VALUE_TYPE& value,
550 int formattingMode = 0,
560 template <
class TYPE>
562 bsl::ostream& stream,
566 int formattingMode = 0,
602 template <
class VALUE_TYPE>
604 bsl::ostream& stream,
606 const VALUE_TYPE& value,
607 int formattingMode = 0,
632 bsl::ostream& stream,
635 bool forceNewline =
true,
636 bool omitEnclosingWhitespace =
false);
657 static bsl::ostream&
flush(bsl::ostream& stream,
State *state);
692: d_id(
Id::e_AT_START)
704: d_id(
Id::e_AT_START)
709, d_elementNesting(allocator)
718, d_indentLevel(original.d_indentLevel)
719, d_spacesPerLevel(original.d_spacesPerLevel)
720, d_column(original.d_column)
721, d_wrapColumn(original.d_wrapColumn)
722, d_elementNesting(original.d_elementNesting, allocator)
732: d_id(
Id::e_AT_START)
733, d_indentLevel(indentLevel)
734, d_spacesPerLevel(spacesPerLevel)
736, d_wrapColumn(wrapColumn)
737, d_elementNesting(allocator)
751, d_indentLevel(indentLevel)
752, d_spacesPerLevel(spacesPerLevel)
754, d_wrapColumn(wrapColumn)
755, d_elementNesting(elementNesting, allocator)
770 return d_elementNesting;
782 return d_indentLevel;
788 return d_spacesPerLevel;
808 return d_elementNesting;
827 return d_indentLevel;
833 return d_spacesPerLevel;
847template <
class VALUE_TYPE>
849 bsl::ostream& stream,
852 const VALUE_TYPE& value,
858 bsl::ostream ss(&sb);
862 stream.setstate(bsl::ios_base::failbit);
868 addAttributeImpl(stream, state, name, valueString);
874template <
class VALUE_TYPE>
876 bsl::ostream& stream,
878 const VALUE_TYPE& valueData,
884 bsl::ostream ss(&sb);
888 stream.setstate(bsl::ios_base::failbit);
893 addDataImpl(stream, state, valueString);
899 bsl::ostream& stream,
907 addData(stream, state, value, formattingMode, encoderOptions);
912template <
class VALUE_TYPE>
914 bsl::ostream& stream,
916 const VALUE_TYPE& value,
922 bsl::ostream ss(&sb);
926 stream.setstate(bsl::ios_base::failbit);
931 addListDataImpl(stream, state, valueString);
Definition balxml_encoderoptions.h:89
Definition bdlma_localsequentialallocator.h:230
Definition bdlsb_memoutstreambuf.h:212
bsl::size_t length() const
Return the number of valid characters in this stream buffer.
Definition bdlsb_memoutstreambuf.h:419
const char * data() const
Definition bdlsb_memoutstreambuf.h:413
Definition bslma_bslallocator.h:588
Definition bslstl_stringview.h:471
size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this vector.
Definition bslstl_vector.h:3019
Definition bslstl_vector.h:1120
allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:4621
void swap(vector &other) BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(AllocatorTraits void clear() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:1938
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition balxml_base64parser.h:150
static bsl::ostream & print(bsl::ostream &stream, const TYPE &object, int formattingMode, const EncoderOptions *encoderOptions=0)
Definition balxml_typesprintutil.h:1166
Definition bslma_usesbslmaallocator.h:344