source: libs/SamgarWRUTed/tags/1.0/QtGui/src/SgPortContainer.cpp @ 447

Revision 447, 2.6 KB checked in by lmalek, 10 years ago (diff)

tree structure reorganization

Line 
1#include "SgPortContainer.h"
2
3namespace Sg
4{
5    SgPortContainerIterator::SgPortContainerIterator():
6            SgPortContainerIteratorType()
7    {
8    }
9
10    SgPortContainerIterator::SgPortContainerIterator(const SgPortContainerIteratorType &org):
11            SgPortContainerIteratorType(org)
12    {
13    }
14
15    SgPortPtr& SgPortContainerIterator::operator* ()
16    {
17        return ((SgPortContainerIteratorType)(*this))->second;
18    }
19
20    SgPortPtr* SgPortContainerIterator::operator-> ()
21    {
22        return &(((SgPortContainerIteratorType)(*this))->second);
23    }
24
25
26    SgPortContainer::SgPortContainer(const SgObject* parentModule) : SgObject("", parentModule)
27    {
28    }
29
30    SgPortContainer::~SgPortContainer()
31    {
32        for (SgPortContainerIterator iter = ports.begin(); iter != ports.end(); iter++) {
33            if ( (*iter) != NULL){
34                delete (*iter);
35                (*iter)=NULL;
36            }
37        }
38        ports.clear();
39    }
40
41    bool SgPortContainer::add(const SgNameType & newPortName)
42    {
43        SgPortContainerIterator iter;
44        if ( (iter = ports.find(newPortName)) == ports.end() )
45        {
46            Sg::SgPort* newPort = new Sg::SgPort(newPortName, this);
47            ports.insert( std::pair<SgNameType, SgPortPtr>(newPort->getName(),newPort) );
48            modified();
49            return true;
50        };
51        return false;
52    }
53
54    bool SgPortContainer::clear()
55    {
56        for (SgPortContainerIterator iter = ports.begin(); iter != ports.end(); iter++) {
57            if ( (*iter) != NULL){
58                delete (*iter);
59                (*iter)=NULL;
60            }
61        }
62        ports.clear();
63        return true;
64    }
65
66    bool SgPortContainer::del(const SgNameType &portName)
67    {
68        SgPortContainerIterator iter = ports.find(portName);
69        if ((*iter))
70        {
71            delete (*iter);
72            (*iter)=NULL;
73            ports.erase(portName);
74            modified();
75            return true;
76        }
77        return false;
78    }
79
80
81    SgPortContainerIterator SgPortContainer::get(const SgNameType &portName)
82    {
83        return ports.find(portName);
84    }
85
86    bool SgPortContainer::exist(const SgNameType &portName)
87    {
88        return ( ports.find(portName) != ports.end() );
89    }
90
91    SgPortContainerIterator SgPortContainer::begin()
92    {
93        return ports.begin();
94    }
95
96    SgPortContainerIterator SgPortContainer::end()
97    {
98        return ports.end();
99    }
100
101    SgPortContainerIterator SgPortContainer::null()
102    {
103        return ports.end();
104    }
105
106    int SgPortContainer::size()
107    {
108        return ports.size();
109    }
110
111} // namespace Sg (END)
Note: See TracBrowser for help on using the repository browser.