Branch data Line data Source code
1 : : // Class: ToolDataUser
2 : :
3 : : #include <cassert>
4 : : #include "ToolDataUser.hpp"
5 : : #include "ToolData.hpp"
6 : : #include "DLIList.hpp"
7 : :
8 : 5289 : ToolData *ToolDataUser::remove_TD( IdentityFn specified_type )
9 : : {
10 : 5289 : ToolData *td = tool_data();
11 : 5289 : ToolData *td_prev = NULL;
12 [ + + ]: 6389 : while (td) {
13 [ + + ]: 5443 : if ( (*specified_type)(td) ) {
14 [ + + ]: 4343 : if (td_prev)
15 : 1100 : td_prev->next_tool_data( td->next_tool_data() );
16 : : else
17 : 3243 : toolData = td->next_tool_data();
18 : 4343 : td->next_tool_data( NULL );
19 : 4343 : return td;
20 : : }
21 : 1100 : td_prev = td;
22 : 1100 : td = td->next_tool_data();
23 : : }
24 : 946 : return NULL;
25 : : }
26 : :
27 : 0 : ToolData *ToolDataUser::remove_TD( ToolData *td_remove )
28 : : {
29 : 0 : ToolData *td = tool_data();
30 : 0 : ToolData *td_prev = NULL;
31 [ # # ]: 0 : while (td) {
32 [ # # ]: 0 : if ( td_remove == td ) {
33 [ # # ]: 0 : if (td_prev)
34 : 0 : td_prev->next_tool_data( td->next_tool_data() );
35 : : else
36 : 0 : toolData = td->next_tool_data();
37 : 0 : td->next_tool_data( NULL );
38 : 0 : return td;
39 : : }
40 : 0 : td_prev = td;
41 : 0 : td = td->next_tool_data();
42 : : }
43 : 0 : return NULL;
44 : : }
45 : :
46 : 5289 : CubitBoolean ToolDataUser::delete_TD( IdentityFn specified_type )
47 : : {
48 : 5289 : ToolData *td = remove_TD( specified_type );
49 [ + + ]: 5289 : if (td)
50 : : {
51 [ + - ]: 4343 : delete td;
52 : 4343 : return CUBIT_TRUE;
53 : : }
54 : 946 : return CUBIT_FALSE;
55 : : }
56 : :
57 : 0 : CubitBoolean ToolDataUser::delete_TD( ToolData *td_remove )
58 : : {
59 : 0 : ToolData *td = remove_TD( td_remove );
60 [ # # ]: 0 : if (td)
61 : : {
62 [ # # ]: 0 : delete td;
63 : 0 : return CUBIT_TRUE;
64 : : }
65 : 0 : return CUBIT_FALSE;
66 : : }
67 : :
68 : 6966 : void ToolDataUser::add_TD( ToolData *new_td )
69 : : {
70 [ - + ]: 6966 : assert( new_td != NULL );
71 : 6966 : new_td->next_tool_data( toolData );
72 : 6966 : toolData = new_td;
73 : 6966 : }
74 : :
75 : 115310 : ToolData *ToolDataUser::get_TD( IdentityFn specified_type )
76 : : {
77 : 115310 : ToolData *td = tool_data();
78 [ + + ]: 134092 : while (td) {
79 [ + + ]: 70123 : if ( (*specified_type)(td) )
80 : 51341 : return td;
81 : 18782 : td = td->next_tool_data();
82 : : }
83 : 63969 : return NULL;
84 : : }
85 : :
86 : 0 : ToolData const* ToolDataUser::get_TD( IdentityFn specified_type ) const
87 : : {
88 : 0 : ToolData *td = tool_data();
89 [ # # ]: 0 : while (td) {
90 [ # # ]: 0 : if ( (*specified_type)(td) )
91 : 0 : return td;
92 : 0 : td = td->next_tool_data();
93 : : }
94 : 0 : return NULL;
95 : : }
96 : :
97 : 0 : void ToolDataUser::get_all_TDs(IdentityFn specified_type,
98 : : DLIList <ToolData *> *all_tds) const
99 : : {
100 [ # # ]: 0 : ToolData *td = tool_data();
101 [ # # ]: 0 : while (td)
102 : : {
103 [ # # ][ # # ]: 0 : if ( (*specified_type)(td) )
104 [ # # ]: 0 : all_tds->append(td);
105 [ # # ]: 0 : td = td->next_tool_data();
106 : : }
107 : 0 : }
108 : :
109 : 0 : void ToolDataUser::get_all_TDs(DLIList <ToolData *> *all_tds) const
110 : : {
111 [ # # ]: 0 : ToolData *td = tool_data();
112 [ # # ]: 0 : while (td)
113 : : {
114 [ # # ]: 0 : all_tds->append(td);
115 [ # # ]: 0 : td = td->next_tool_data();
116 : : }
117 : 0 : }
118 : :
119 : 92244 : ToolDataUser::~ToolDataUser()
120 : : {
121 : : //delete all ToolData's chained off this user.
122 : 92244 : ToolData *td = tool_data();
123 [ + + ]: 92255 : while ( td ) {
124 : 11 : ToolData *next = td->next_tool_data();
125 [ + - ]: 11 : delete td;
126 : 11 : td = next;
127 : : }
128 : :
129 : : // set the first TD to NULL
130 : 92244 : tool_data(NULL);
131 [ - + ]: 92244 : }
132 : :
133 : :
134 : :
|