Sequence Chart Studio  svn HEAD revision
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Attributes | List of all members
HMscFlatPathToBMscDuplicator Class Reference

Duplicates path in BMsc graph - not hierarchical path and creates BMsc. The "path" is any path from any node in BMsc graph to any node of BMsc graph. The values of get_copy are not exactly defined/set for BMscPtr and InstancePtr. If one bmsc occurs in path more than once the elements from (n+1)-th occurence are duplicated from n-th (already created) occurence of the bmsc. That is why one has to traverse to right copy through references. For example, if I want to get copy of an element from bmsc from its third occurance in the path, I have to call three times method get_copy() i.e. duplicator.get_copy(duplicator.get_copy(duplicator.get_copy(element)));. More...

#include <msc_duplicators.h>

Inheritance diagram for HMscFlatPathToBMscDuplicator:
Inheritance graph
Collaboration diagram for HMscFlatPathToBMscDuplicator:
Collaboration graph

Public Member Functions

 ~HMscFlatPathToBMscDuplicator ()
 
BMscPtr duplicate_path (const MscElementPList &path)
 
MscElementget_copy_with_occurence (MscElement *element, int occurence)
 
MscElementget_copy_by_ref_node (MscElement *element, ReferenceNode *ref)
 
- Public Member Functions inherited from Duplicator
virtual ~Duplicator ()
 
MscElement *& get_copy (MscElement *e)
 
SuccessorNodeget_copy (SuccessorNode *s)
 
PredecessorNodeget_copy (PredecessorNode *p)
 
ReferenceNodeget_copy (ReferenceNode *p)
 
HMscget_copy (HMsc *p)
 
BMscget_copy (BMsc *p)
 
Mscget_copy (Msc *p)
 
MscElementPList get_m_modified_elements ()
 
void set_m_modified_elements (MscElementPList elements)
 
void set_copy (MscElement *original, MscElement *copy)
 
void cleanup_attributes ()
 

Private Attributes

std::map< ReferenceNode *, int > m_ref_node_to_occurence
 

Additional Inherited Members

- Protected Member Functions inherited from Duplicator
 Duplicator ()
 
- Protected Attributes inherited from Duplicator
MscElementPList m_modified_elements
 

Detailed Description

Duplicates path in BMsc graph - not hierarchical path and creates BMsc. The "path" is any path from any node in BMsc graph to any node of BMsc graph. The values of get_copy are not exactly defined/set for BMscPtr and InstancePtr. If one bmsc occurs in path more than once the elements from (n+1)-th occurence are duplicated from n-th (already created) occurence of the bmsc. That is why one has to traverse to right copy through references. For example, if I want to get copy of an element from bmsc from its third occurance in the path, I have to call three times method get_copy() i.e. duplicator.get_copy(duplicator.get_copy(duplicator.get_copy(element)));.

Definition at line 448 of file msc_duplicators.h.

Constructor & Destructor Documentation

HMscFlatPathToBMscDuplicator::~HMscFlatPathToBMscDuplicator ( )

Definition at line 1462 of file msc_duplicators.cpp.

Member Function Documentation

BMscPtr HMscFlatPathToBMscDuplicator::duplicate_path ( const MscElementPList path)
MscElement * HMscFlatPathToBMscDuplicator::get_copy_by_ref_node ( MscElement element,
ReferenceNode ref 
)
MscElement * HMscFlatPathToBMscDuplicator::get_copy_with_occurence ( MscElement element,
int  occurence 
)

Definition at line 1439 of file msc_duplicators.cpp.

References Duplicator::get_copy().

Referenced by get_copy_by_ref_node().

Member Data Documentation

std::map<ReferenceNode*,int> HMscFlatPathToBMscDuplicator::m_ref_node_to_occurence
private

Definition at line 450 of file msc_duplicators.h.

Referenced by duplicate_path(), and get_copy_by_ref_node().


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

SourceForge.net Logo
Generated on Fri Jan 15 2016 16:26:58 for Sequence Chart Studio by  doxygen