Samchon Framework for CPP  1.0.0
samchon::example::packer::WrapperArray Class Reference

An array of wrapper with same category (name). More...

#include <WrapperArray.hpp>

Collaboration diagram for samchon::example::packer::WrapperArray:

Public Member Functions

 WrapperArray ()
 Default Constructor. More...
 
 WrapperArray (const string &name, int price, int volume, int weight)
 Construct from arguments of sample. More...
 
 WrapperArray (const WrapperArray &wrapperArray)
 Copy Constructor. More...
 
auto tryInsert (shared_ptr< Product > product) -> bool
 Try to insert a product into reserved list. More...
 
void optimize ()
 Optimize to retrieve the best solution. More...
 
auto calcPrice () const -> int
 Calculate price of the Wrapper(s) More...
 
virtual auto TAG () const -> string override
 A tag name when represented by XML. More...
 
virtual auto CHILD_TAG () const -> string override
 A tag name of children. More...
 
virtual auto toXML () const -> shared_ptr< XML > override
 Get an XML object represents the EntityGroup. More...
 
auto toString () const -> string
 Return a string represents Wrapper(s) of same type. More...
 
- Public Member Functions inherited from samchon::protocol::EntityGroup< _Container, _ETy, T >
 EntityGroup ()
 Default Constructor. More...
 
virtual void construct (std::shared_ptr< library::XML > xml)
 Construct data of the Entity from an XML object. More...
 
auto has (const std::string &key) const -> bool
 Indicates whether a container has an object having the specified identifier. More...
 
auto get (const std::string &key) -> value_type &
 Access the element by specified identifier(key). More...
 
auto get (const std::string &key) const -> const value_type &
 Access the const element by specified identifier(key). More...
 
- Public Member Functions inherited from samchon::protocol::Entity
 Entity ()
 Default Constructor. More...
 
virtual auto key () const -> std::string
 Get a key that can identify the Entity uniquely. More...
 
- Public Member Functions inherited from samchon::protocol::IEntityGroup
 IEntityGroup ()
 Default Constructor. More...
 

Protected Attributes

shared_ptr< ProductArrayreserved
 A list for reserved Product(s). More...
 
shared_ptr< Wrappersample
 A sample wrapper used to copy. More...
 

Additional Inherited Members

- Protected Member Functions inherited from samchon::protocol::EntityGroup< _Container, _ETy, T >
virtual auto createChild (std::shared_ptr< library::XML >) -> entity_type *=0
 Factory method of a child Entity. More...
 

Detailed Description

An array of wrapper with same category (name).

WrapperArray reserves Product(s) and generates enough number of Wrapper(s).

WrapperArray will retrieve the best arrange and packaging method for reserved Product(s).

example_packer.png
Author
Jeongho Nam http://samchon.org

Definition at line 32 of file WrapperArray.hpp.

Constructor & Destructor Documentation

samchon::example::packer::WrapperArray::WrapperArray ( )
inline

Default Constructor.

Definition at line 56 of file WrapperArray.hpp.

samchon::example::packer::WrapperArray::WrapperArray ( const string &  name,
int  price,
int  volume,
int  weight 
)
inline

Construct from arguments of sample.

Parameters
nameCategory name of a wrapper, can be identified
pricePrice of a wrapper
volumeLimited volume of a wrapper can put in.
weightLimited weight of a wrapper can put in.

Definition at line 71 of file WrapperArray.hpp.

samchon::example::packer::WrapperArray::WrapperArray ( const WrapperArray wrapperArray)
inline

Copy Constructor.

Copy constructor of WrapperArray does not copy children items.

Only copies sample.

Definition at line 86 of file WrapperArray.hpp.

References sample.

Member Function Documentation

auto samchon::example::packer::WrapperArray::tryInsert ( shared_ptr< Product product) -> bool
inline

Try to insert a product into reserved list.

If the Product's volume and weight is equal or less than the Wrapper categorized so that enable to insert in a Wrapper, reserve the Product and returns true. If not, does not reserve and just return false.

Returns
Whether the Product's volume and weight is equal or less than the Wrapper.

Definition at line 119 of file WrapperArray.hpp.

void samchon::example::packer::WrapperArray::optimize ( )
inline

Optimize to retrieve the best solution.

Retrieve the best solution of packaging in level of WrapperArray.

Shuffles sequence of reserved Product(s) by samchon::FactorialGenerator and insert the reserved Products(s) following the sequence creating Wrapper(s) as needed. Between the sequences from FactorialGenerator, retrieve and determine the best solution.

Note

Sequence of inserting Product can affeact to numbers of Wrapper(s) to be used.

It's the reason why even WrapperArray has the optimize() method.

See also
samchon::FactorialGenerator

Definition at line 149 of file WrapperArray.hpp.

References samchon::example::packer::Wrapper::tryInsert().

Here is the call graph for this function:

auto samchon::example::packer::WrapperArray::calcPrice ( ) const -> int
inline

Calculate price of the Wrapper(s)

Calculates price of all wrapppers'. The price does not contain inserted products'

Definition at line 192 of file WrapperArray.hpp.

virtual auto samchon::example::packer::WrapperArray::TAG ( ) const -> string
inlineoverridevirtual

A tag name when represented by XML.

Returns
A tag name

Implements samchon::protocol::Entity.

Definition at line 200 of file WrapperArray.hpp.

virtual auto samchon::example::packer::WrapperArray::CHILD_TAG ( ) const -> string
inlineoverridevirtual

A tag name of children.

< TAG>
     <CHILD_TAG />
     <CHILD_TAG />
</TAG>

Implements samchon::protocol::IEntityGroup.

Definition at line 204 of file WrapperArray.hpp.

virtual auto samchon::example::packer::WrapperArray::toXML ( ) const -> shared_ptr<XML>
inlineoverridevirtual

Get an XML object represents the EntityGroup.

Archives the EntityGroup's own member variables only to the returned XML object.

Do not consider about archiving children Entity objects' data in EntityGroup::toXML(). Those children Entity objects will converted to XML object by their own toXML() method. The insertion of XML objects representing children are done by abstract method of EntityGroup::toXML().

Archives only data of EntityGroup's own.

[Inherited]
Get an XML object represents the Entity.

Returns an XML object that can represents the Entity containing member variables into properties.

A member variable (not object, but atomic value like number, string or date) is categorized as a property within the framework of entity side. Thus, when overriding a toXML() method and archiving member variables to an XML object to return, puts each variable to be a property belongs to only an XML object.

Don't archive the member variable of atomic value to XML::value causing enormouse creation of XML objects to number of member variables. An Entity must be represented by only an XML instance (tag).

Standard Usage Non-standard usage abusing value
<memberList>
     <member id='jhnam88' name='Jeongho+Nam' birthdate='1988-03-11' />
     <member id='master' name='Administartor' birthdate='2011-07-28' />
</memberList>
<member>
     <id>jhnam88</id>
     <name>Jeongho+Nam</name>
     <birthdate>1988-03-11</birthdate>
</member>
Returns
An XML object representing the Entity.

Reimplemented from samchon::protocol::EntityGroup< _Container, _ETy, T >.

Definition at line 209 of file WrapperArray.hpp.

auto samchon::example::packer::WrapperArray::toString ( ) const -> string
inline

Return a string represents Wrapper(s) of same type.

Definition at line 220 of file WrapperArray.hpp.

Member Data Documentation

shared_ptr<ProductArray> samchon::example::packer::WrapperArray::reserved
protected

A list for reserved Product(s).

Definition at line 42 of file WrapperArray.hpp.

shared_ptr<Wrapper> samchon::example::packer::WrapperArray::sample
protected

A sample wrapper used to copy.

Definition at line 47 of file WrapperArray.hpp.

Referenced by WrapperArray().


The documentation for this class was generated from the following file: