27 |
28 |
28 _LIT( KEmailExtensionPanic, "EmailFw" ); |
29 _LIT( KEmailExtensionPanic, "EmailFw" ); |
29 |
30 |
30 void Panic( TEmailFwPanic aPanic ) |
31 void Panic( TEmailFwPanic aPanic ) |
31 { |
32 { |
32 FUNC_LOG; |
33 NM_FUNCTION; |
|
34 |
33 User::Panic( KEmailExtensionPanic, aPanic ); |
35 User::Panic( KEmailExtensionPanic, aPanic ); |
34 } |
36 } |
35 |
37 |
36 // --------------------------------------------------------------------------- |
38 // --------------------------------------------------------------------------- |
37 // c++ constructor |
39 // c++ constructor |
38 // --------------------------------------------------------------------------- |
40 // --------------------------------------------------------------------------- |
39 // |
41 // |
40 CEmailExtension::CEmailExtension( const TUid& aUid ) : |
42 CEmailExtension::CEmailExtension( const TUid& aUid ) : |
41 iUid( TUid::Uid(aUid.iUid ) ) |
43 iUid( TUid::Uid(aUid.iUid ) ) |
42 { |
44 { |
|
45 NM_FUNCTION; |
43 } |
46 } |
44 |
47 |
45 // --------------------------------------------------------------------------- |
48 // --------------------------------------------------------------------------- |
46 // |
49 // |
47 // --------------------------------------------------------------------------- |
50 // --------------------------------------------------------------------------- |
48 // |
51 // |
49 CEmailExtension::~CEmailExtension() |
52 CEmailExtension::~CEmailExtension() |
50 { |
53 { |
|
54 NM_FUNCTION; |
51 } |
55 } |
52 |
56 |
53 // --------------------------------------------------------------------------- |
57 // --------------------------------------------------------------------------- |
54 // |
58 // |
55 // --------------------------------------------------------------------------- |
59 // --------------------------------------------------------------------------- |
56 // |
60 // |
57 TUid CEmailExtension::Uid() const |
61 TUid CEmailExtension::Uid() const |
58 { |
62 { |
|
63 NM_FUNCTION; |
|
64 |
59 return iUid; |
65 return iUid; |
60 } |
66 } |
61 |
67 |
62 // --------------------------------------------------------------------------- |
68 // --------------------------------------------------------------------------- |
63 // |
69 // |
64 // --------------------------------------------------------------------------- |
70 // --------------------------------------------------------------------------- |
65 // |
71 // |
66 TUint CEmailExtension::DecRef() |
72 TUint CEmailExtension::DecRef() |
67 { |
73 { |
|
74 NM_FUNCTION; |
|
75 |
68 if ( iRefCount ) |
76 if ( iRefCount ) |
69 { |
77 { |
70 iRefCount--; |
78 iRefCount--; |
71 } |
79 } |
72 return iRefCount; |
80 return iRefCount; |
76 // |
84 // |
77 // --------------------------------------------------------------------------- |
85 // --------------------------------------------------------------------------- |
78 // |
86 // |
79 void CEmailExtension::IncRef() |
87 void CEmailExtension::IncRef() |
80 { |
88 { |
|
89 NM_FUNCTION; |
|
90 |
81 ++iRefCount; |
91 ++iRefCount; |
82 } |
92 } |
83 |
93 |
84 // --------------------------------------------------------------------------- |
94 // --------------------------------------------------------------------------- |
85 // deletes extension and removes it from extension array |
95 // deletes extension and removes it from extension array |
86 // --------------------------------------------------------------------------- |
96 // --------------------------------------------------------------------------- |
87 // |
97 // |
88 void CExtendableEmail::ReleaseExtension( CEmailExtension* aExtension ) |
98 void CExtendableEmail::ReleaseExtension( CEmailExtension* aExtension ) |
89 { |
99 { |
90 FUNC_LOG; |
100 NM_FUNCTION; |
|
101 |
91 if ( !aExtension->DecRef() ) |
102 if ( !aExtension->DecRef() ) |
92 { |
103 { |
93 iExtensions.Remove( aExtension ); |
104 iExtensions.Remove( aExtension ); |
94 delete aExtension; |
105 delete aExtension; |
95 } |
106 } |
99 // Finds and returns extension |
110 // Finds and returns extension |
100 // --------------------------------------------------------------------------- |
111 // --------------------------------------------------------------------------- |
101 // |
112 // |
102 CEmailExtension* CExtendableEmail::ExtensionL( const TUid& aInterfaceUid ) |
113 CEmailExtension* CExtendableEmail::ExtensionL( const TUid& aInterfaceUid ) |
103 { |
114 { |
104 FUNC_LOG; |
115 NM_FUNCTION; |
|
116 |
105 TInt index = iExtensions.FindExtension( aInterfaceUid ); |
117 TInt index = iExtensions.FindExtension( aInterfaceUid ); |
106 CEmailExtension* ext = NULL; |
118 CEmailExtension* ext = NULL; |
107 if ( index != KErrNotFound ) |
119 if ( index != KErrNotFound ) |
108 { |
120 { |
109 ext = iExtensions.Extension( index ); |
121 ext = iExtensions.Extension( index ); |
117 // Constructor is required for sbs2 to generate the same .defs for urel/udeb |
129 // Constructor is required for sbs2 to generate the same .defs for urel/udeb |
118 // --------------------------------------------------------------------------- |
130 // --------------------------------------------------------------------------- |
119 // |
131 // |
120 CExtendableEmail::CExtendableEmail() |
132 CExtendableEmail::CExtendableEmail() |
121 { |
133 { |
122 FUNC_LOG; |
134 NM_FUNCTION; |
|
135 |
123 } |
136 } |
124 //</qmail> |
137 //</qmail> |
125 |
138 |
126 // --------------------------------------------------------------------------- |
139 // --------------------------------------------------------------------------- |
127 // destructor |
140 // destructor |
128 // --------------------------------------------------------------------------- |
141 // --------------------------------------------------------------------------- |
129 // |
142 // |
130 TEmailExtensions::~TEmailExtensions() |
143 TEmailExtensions::~TEmailExtensions() |
131 { |
144 { |
|
145 NM_FUNCTION; |
|
146 |
132 iExtensions.Close(); |
147 iExtensions.Close(); |
133 } |
148 } |
134 |
149 |
135 // --------------------------------------------------------------------------- |
150 // --------------------------------------------------------------------------- |
136 // c++ constructor |
151 // c++ constructor |
137 // --------------------------------------------------------------------------- |
152 // --------------------------------------------------------------------------- |
138 // |
153 // |
139 TEmailExtensions::TEmailExtensions() : iExtensions( 1 ) |
154 TEmailExtensions::TEmailExtensions() : iExtensions( 1 ) |
140 { |
155 { |
|
156 NM_FUNCTION; |
|
157 |
141 } |
158 } |
142 |
159 |
143 // --------------------------------------------------------------------------- |
160 // --------------------------------------------------------------------------- |
144 // returns index of extension in extension array |
161 // returns index of extension in extension array |
145 // --------------------------------------------------------------------------- |
162 // --------------------------------------------------------------------------- |
146 // |
163 // |
147 TInt TEmailExtensions::FindExtension( const TUid& aUid ) const |
164 TInt TEmailExtensions::FindExtension( const TUid& aUid ) const |
148 { |
165 { |
|
166 NM_FUNCTION; |
|
167 |
149 TInt index = KErrNotFound; |
168 TInt index = KErrNotFound; |
150 for ( TInt i = 0; i < iExtensions.Count(); i++ ) |
169 for ( TInt i = 0; i < iExtensions.Count(); i++ ) |
151 { |
170 { |
152 const CEmailExtension* tested = iExtensions[i]; |
171 const CEmailExtension* tested = iExtensions[i]; |
153 if ( aUid == tested->Uid() ) |
172 if ( aUid == tested->Uid() ) |
163 // Returns extension by index. Panics if index is out of range. |
182 // Returns extension by index. Panics if index is out of range. |
164 // --------------------------------------------------------------------------- |
183 // --------------------------------------------------------------------------- |
165 // |
184 // |
166 CEmailExtension* TEmailExtensions::Extension( const TInt aIndex ) const |
185 CEmailExtension* TEmailExtensions::Extension( const TInt aIndex ) const |
167 { |
186 { |
|
187 NM_FUNCTION; |
|
188 |
168 __ASSERT_ALWAYS( aIndex>=0 && aIndex < iExtensions.Count(), |
189 __ASSERT_ALWAYS( aIndex>=0 && aIndex < iExtensions.Count(), |
169 Panic( EEmailExtensionIndexOutOfRange ) ); |
190 Panic( EEmailExtensionIndexOutOfRange ) ); |
170 return iExtensions[aIndex]; |
191 return iExtensions[aIndex]; |
171 } |
192 } |
172 |
193 |
192 // --------------------------------------------------------------------------- |
214 // --------------------------------------------------------------------------- |
193 // |
215 // |
194 void TEmailExtensions::Remove( |
216 void TEmailExtensions::Remove( |
195 const CEmailExtension* aExtension ) |
217 const CEmailExtension* aExtension ) |
196 { |
218 { |
197 FUNC_LOG; |
219 NM_FUNCTION; |
|
220 |
198 const TInt index( FindExtension( aExtension->Uid() ) ); |
221 const TInt index( FindExtension( aExtension->Uid() ) ); |
199 if ( index != KErrNotFound ) |
222 if ( index != KErrNotFound ) |
200 { |
223 { |
201 iExtensions.Remove( index ); |
224 iExtensions.Remove( index ); |
202 } |
225 } |