44 // CApNetworks::NewLC |
44 // CApNetworks::NewLC |
45 // --------------------------------------------------------- |
45 // --------------------------------------------------------- |
46 // |
46 // |
47 EXPORT_C CApNetworks* CApNetworks::NewLC( CCommsDatabase& aDb ) |
47 EXPORT_C CApNetworks* CApNetworks::NewLC( CCommsDatabase& aDb ) |
48 { |
48 { |
49 CLOG( ( ENetworks, 0, _L( "-> CApNetworks::NewLC" ) ) ); |
49 return NULL; |
50 |
|
51 CApNetworks* db = new( ELeave ) CApNetworks; |
|
52 CleanupStack::PushL( db ); |
|
53 db->ConstructL( aDb ); |
|
54 |
|
55 CLOG( ( ENetworks, 1, _L( "<- CApNetworks::NewLC" ) ) ); |
|
56 return db; |
|
57 } |
50 } |
58 |
51 |
59 |
52 |
60 // Destructor |
53 // Destructor |
61 // --------------------------------------------------------- |
54 // --------------------------------------------------------- |
62 // CApNetworks::~CApNetworks |
55 // CApNetworks::~CApNetworks |
63 // --------------------------------------------------------- |
56 // --------------------------------------------------------- |
64 // |
57 // |
65 EXPORT_C CApNetworks::~CApNetworks() |
58 EXPORT_C CApNetworks::~CApNetworks() |
66 { |
59 { |
67 CLOG( ( ENetworks, 0, _L( "-> CApNetworks::~CApNetworks" ) ) ); |
|
68 |
|
69 if ( iApList ) |
|
70 { |
|
71 iApList->ResetAndDestroy(); |
|
72 delete iApList; |
|
73 } |
|
74 |
|
75 CLOG( ( ENetworks, 1, _L( "<- CApNetworks::~CApNetworks" ) ) ); |
|
76 } |
60 } |
77 |
61 |
78 |
62 |
79 // C++ default constructor can NOT contain any code that |
63 // C++ default constructor can NOT contain any code that |
80 // might leave. |
64 // might leave. |
95 // --------------------------------------------------------- |
79 // --------------------------------------------------------- |
96 // |
80 // |
97 EXPORT_C void CApNetworks::ConstructL( CCommsDatabase& aDb ) |
81 EXPORT_C void CApNetworks::ConstructL( CCommsDatabase& aDb ) |
98 |
82 |
99 { |
83 { |
100 CLOG( ( ENetworks, 0, _L( "-> CApNetworks::ConstructL" ) ) ); |
|
101 |
|
102 iApList = new( ELeave )CApNetworkItemList(); |
|
103 iDb = &aDb; |
|
104 DoUpdateL(); |
|
105 |
|
106 CLOG( ( ENetworks, 1, _L( "<- CApNetworks::ConstructL" ) ) ); |
|
107 } |
84 } |
108 |
85 |
109 |
86 |
110 |
87 |
111 // --------------------------------------------------------- |
88 // --------------------------------------------------------- |
112 // CApNetworks::Count |
89 // CApNetworks::Count |
113 // --------------------------------------------------------- |
90 // --------------------------------------------------------- |
114 // |
91 // |
115 EXPORT_C TUint32 CApNetworks::Count() const |
92 EXPORT_C TUint32 CApNetworks::Count() const |
116 { |
93 { |
117 CLOG( ( ENetworks, 0, _L( "<-> CApNetworks::Count" ) ) ); |
94 return 0; |
118 |
|
119 return iApList->Count( ); |
|
120 } |
95 } |
121 |
96 |
122 |
97 |
123 // --------------------------------------------------------- |
98 // --------------------------------------------------------- |
124 // CApNetworks::Name |
99 // CApNetworks::Name |
125 // --------------------------------------------------------- |
100 // --------------------------------------------------------- |
126 // |
101 // |
127 EXPORT_C const TDesC& CApNetworks::NameL( TUint32 aUid ) const |
102 EXPORT_C const TDesC& CApNetworks::NameL( TUint32 aUid ) const |
128 { |
103 { |
129 CLOG( ( ENetworks, 0, _L( "-> CApNetworks::NameL" ) ) ); |
104 User::Leave( KErrNotSupported ); |
130 |
|
131 CApNetworkItem* item = |
|
132 CONST_CAST( CApNetworkItem*, iApList->ItemForUid( aUid ) ); |
|
133 if ( item == NULL ) |
|
134 { |
|
135 User::Leave( KErrNotFound ); |
|
136 } |
|
137 |
|
138 CLOG( ( ENetworks, 1, _L( "<- CApNetworks::NameL" ) ) ); |
|
139 return (item->Name() ); |
|
140 } |
105 } |
141 |
106 |
142 |
107 |
143 |
108 |
144 |
109 |
148 // CApNetworks::AllListItemDataL |
113 // CApNetworks::AllListItemDataL |
149 // --------------------------------------------------------- |
114 // --------------------------------------------------------- |
150 // |
115 // |
151 EXPORT_C TInt CApNetworks::AllListItemDataL( CApNetworkItemList& aList ) |
116 EXPORT_C TInt CApNetworks::AllListItemDataL( CApNetworkItemList& aList ) |
152 { |
117 { |
153 CLOG( ( ENetworks, 0, _L( "-> CApNetworks::AllListItemDataL" ) ) ); |
118 return 0; |
154 |
|
155 aList.ResetAndDestroy(); |
|
156 |
|
157 CApNetworkItem* item=NULL; |
|
158 |
|
159 TInt i; |
|
160 TInt count = iApList->Count(); |
|
161 for ( i=0; i<count; i++ ) |
|
162 { |
|
163 item = CApNetworkItem::NewLC( ( *iApList )[i] ); |
|
164 aList.AppendL( item ); |
|
165 CleanupStack::Pop( item ); // item owned by aList ! |
|
166 } |
|
167 CLOG( ( ENetworks, 1, _L( "<- CApNetworks::AllListItemDataL" ) ) ); |
|
168 |
|
169 return aList.Count(); |
|
170 } |
119 } |
171 |
120 |
172 |
121 |
173 |
122 |
174 |
123 |
182 // CApNetworks::DoUpdate |
131 // CApNetworks::DoUpdate |
183 // --------------------------------------------------------- |
132 // --------------------------------------------------------- |
184 // |
133 // |
185 TInt CApNetworks::DoUpdateL() |
134 TInt CApNetworks::DoUpdateL() |
186 { |
135 { |
187 CLOG( ( ENetworks, 0, _L( "-> CApNetworks::DoUpdateL" ) ) ); |
136 return KErrNotFound; |
188 |
|
189 TInt err( KErrNone ); |
|
190 |
|
191 TBool OwnTransaction = ApCommons::StartPushedTransactionLC( *iDb ); |
|
192 |
|
193 CCommsDbTableView* networkt = iDb->OpenTableLC( TPtrC(NETWORK) ); |
|
194 |
|
195 err = networkt->GotoFirstRecord(); |
|
196 |
|
197 if ( ( err == KErrNone ) || ( err == KErrNotFound ) ) |
|
198 { // even if it is empty, we must clear the list. |
|
199 // otherwise, Leave |
|
200 // fill up list. First empty it |
|
201 iApList->ResetAndDestroy(); |
|
202 iCount = 0; |
|
203 TUint32 temp( 0 ); |
|
204 TInt length( 0 ); |
|
205 |
|
206 CApNetworkItem* item = NULL; |
|
207 CApNetworkItemList* tmpnetlist = new( ELeave )CApNetworkItemList(); |
|
208 HBufC* tmp = NULL; |
|
209 CleanupStack::PushL( tmpnetlist ); |
|
210 |
|
211 if ( err == KErrNone ) |
|
212 { // now get the names and UIDs |
|
213 TBool goon( ETrue ); |
|
214 do |
|
215 { |
|
216 err = ApCommons::ReadUintL( networkt, TPtrC(COMMDB_ID), temp ); |
|
217 |
|
218 networkt->ReadColumnLengthL( TPtrC(COMMDB_NAME), length ); |
|
219 tmp = HBufC::NewLC( length ); |
|
220 TPtr tmpptr( tmp->Des() ); |
|
221 networkt->ReadTextL( TPtrC(COMMDB_NAME), tmpptr ); |
|
222 item = CApNetworkItem::NewLC( ); |
|
223 item->SetUid( temp ); |
|
224 item->SetNameL( tmpptr ); |
|
225 tmpnetlist->AppendL( item ); |
|
226 CleanupStack::Pop( item ); // item owned by list ! |
|
227 |
|
228 err = networkt->GotoNextRecord(); |
|
229 if ( err == KErrNotFound ) |
|
230 { |
|
231 goon = EFalse; |
|
232 } |
|
233 else |
|
234 { |
|
235 User::LeaveIfError( err ); |
|
236 } |
|
237 CleanupStack::PopAndDestroy( tmp ); |
|
238 } |
|
239 while ( goon ); |
|
240 } |
|
241 // and now move items to real array |
|
242 CleanupStack::Pop( tmpnetlist ); |
|
243 delete iApList; |
|
244 iApList = tmpnetlist; |
|
245 } |
|
246 else |
|
247 { |
|
248 User::Leave( err ); |
|
249 } |
|
250 |
|
251 CleanupStack::PopAndDestroy( networkt ); |
|
252 |
|
253 if ( OwnTransaction ) |
|
254 { |
|
255 ApCommons::CommitTransaction( *iDb ); |
|
256 CleanupStack::Pop(); // RollbackTransactionOnLeave |
|
257 } |
|
258 |
|
259 |
|
260 CLOG( ( ENetworks, 1, _L( "<- CApNetworks::DoUpdateL" ) ) ); |
|
261 return err; |
|
262 } |
137 } |
263 |
138 |
264 |
139 |
265 |
140 |
266 // End of File |
141 // End of File |