Orcus
Public Types | Public Member Functions | List of all members
orcus::spreadsheet::import_shared_strings Class Reference

#include <shared_strings.hpp>

Inheritance diagram for orcus::spreadsheet::import_shared_strings:
orcus::spreadsheet::iface::import_shared_strings

Public Types

typedef std::unordered_map< size_t, format_runs_t * > format_runs_map_type
 

Public Member Functions

 import_shared_strings (const import_shared_strings &)=delete
 
import_shared_stringsoperator= (const import_shared_strings &)=delete
 
 import_shared_strings (orcus::string_pool &sp, ixion::model_context &cxt, styles &styles)
 
virtual size_t append (std::string_view s) override
 
virtual size_t add (std::string_view s) override
 
virtual void set_segment_font (size_t font_index) override
 
virtual void set_segment_bold (bool b) override
 
virtual void set_segment_italic (bool b) override
 
virtual void set_segment_font_name (std::string_view s) override
 
virtual void set_segment_font_size (double point) override
 
virtual void set_segment_font_color (color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) override
 
virtual void append_segment (std::string_view s) override
 
virtual size_t commit_segments () override
 
const format_runs_t * get_format_runs (size_t index) const
 
const std::string * get_string (size_t index) const
 
void dump () const
 
virtual size_t append (std::string_view s)=0
 
virtual size_t add (std::string_view s)=0
 
virtual void set_segment_font (size_t font_index)=0
 
virtual void set_segment_bold (bool b)=0
 
virtual void set_segment_italic (bool b)=0
 
virtual void set_segment_font_name (std::string_view s)=0
 
virtual void set_segment_font_size (double point)=0
 
virtual void set_segment_font_color (color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
 
virtual void append_segment (std::string_view s)=0
 
virtual size_t commit_segments ()=0
 

Detailed Description

This class handles global pool of string instances.

Constructor & Destructor Documentation

◆ ~import_shared_strings()

virtual orcus::spreadsheet::import_shared_strings::~import_shared_strings ( )
overridevirtual

Member Function Documentation

◆ add()

virtual size_t orcus::spreadsheet::import_shared_strings::add ( std::string_view  s)
overridevirtual

Similar to the append method, it adds new string to the string pool; however, this method checks if the string being added is already in the pool before each insertion, to avoid duplicated strings.

Parameters
sstring to add to the pool.
Returns
ID of the string just inserted.

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ append()

virtual size_t orcus::spreadsheet::import_shared_strings::append ( std::string_view  s)
overridevirtual

Append new string to the string list. Order of insertion is important since that determines the numerical ID values of inserted strings. Note that this method assumes that the caller knows the string being appended is not yet in the pool.

Parameters
sstring to append to the pool.
Returns
ID of the string just inserted.

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ append_segment()

virtual void orcus::spreadsheet::import_shared_strings::append_segment ( std::string_view  s)
overridevirtual

Append a string segment with the current format attributes to the formatted string buffer.

Parameters
sstring segment value.

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ commit_segments()

virtual size_t orcus::spreadsheet::import_shared_strings::commit_segments ( )
overridevirtual

Store the formatted string in the current buffer to the shared strings store. The implementation may choose to unconditionally append the string to the store, or choose to look for an existing indentical formatted string to reuse and discard the new one if one exists.

Returns
ID of the string just inserted, or the ID of an existing string with identical formatting attributes.

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ set_segment_bold()

virtual void orcus::spreadsheet::import_shared_strings::set_segment_bold ( bool  b)
overridevirtual

Set whether or not to make the font bold to the current format attributes.

Parameters
btrue if it's bold, false otherwise.

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ set_segment_font()

virtual void orcus::spreadsheet::import_shared_strings::set_segment_font ( size_t  font_index)
overridevirtual

Set the index of a font to apply to the current format attributes.

Parameters
font_indexpositive integer representing the font to use.

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ set_segment_font_color()

virtual void orcus::spreadsheet::import_shared_strings::set_segment_font_color ( color_elem_t  alpha,
color_elem_t  red,
color_elem_t  green,
color_elem_t  blue 
)
overridevirtual

Set the color of a font in ARGB to the current format attributes.

Parameters
alphaalpha component value (0-255).
redred component value (0-255).
greengreen component value (0-255).
blueblue component value (0-255).

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ set_segment_font_name()

virtual void orcus::spreadsheet::import_shared_strings::set_segment_font_name ( std::string_view  s)
overridevirtual

Set the name of a font to the current format attributes.

Parameters
sfont name.

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ set_segment_font_size()

virtual void orcus::spreadsheet::import_shared_strings::set_segment_font_size ( double  point)
overridevirtual

Set a font size to the current format attributes.

Parameters
pointfont size in points.

Implements orcus::spreadsheet::iface::import_shared_strings.

◆ set_segment_italic()

virtual void orcus::spreadsheet::import_shared_strings::set_segment_italic ( bool  b)
overridevirtual

Set whether or not to set the font italic font to the current format attributes.

Parameters
btrue if it's italic, false otherwise.

Implements orcus::spreadsheet::iface::import_shared_strings.