emailservices/emailcommon/src/CFSMailFolderBase.cpp
changeset 30 759dc5235cdb
parent 20 ecc8def7944a
equal deleted inserted replaced
27:9ba4404ef423 30:759dc5235cdb
    13 *
    13 *
    14 * Description:  common email folder base object
    14 * Description:  common email folder base object
    15 *
    15 *
    16 */
    16 */
    17 
    17 
       
    18 #include "emailtrace.h"
       
    19 
    18 // <qmail>
    20 // <qmail>
    19 #include <nmcommonheaders.h>
    21 #include <nmcommonheaders.h>
    20 // </qmail>
    22 // </qmail>
    21 
       
    22 #include "emailtrace.h"
       
    23 
    23 
    24 // <qmail>
    24 // <qmail>
    25 #include "CFSMailFolderBase.h"
    25 #include "CFSMailFolderBase.h"
    26 #include "nmfolder.h"
    26 #include "nmfolder.h"
    27 // </qmail>
    27 // </qmail>
    30 // -----------------------------------------------------------------------------
    30 // -----------------------------------------------------------------------------
    31 // CFSMailFolderBase::CFSMailFolderBase
    31 // CFSMailFolderBase::CFSMailFolderBase
    32 // -----------------------------------------------------------------------------
    32 // -----------------------------------------------------------------------------
    33 CFSMailFolderBase::CFSMailFolderBase()
    33 CFSMailFolderBase::CFSMailFolderBase()
    34 {
    34 {
    35     FUNC_LOG;
    35     NM_FUNCTION;
       
    36     
    36 // <qmail> unnecessary iFolderName initialization removed </qmail>
    37 // <qmail> unnecessary iFolderName initialization removed </qmail>
    37 	iMoveOfflineBlocked.Reset();
    38 	iMoveOfflineBlocked.Reset();
    38 	iMoveOnlineBlocked.Reset();
    39 	iMoveOnlineBlocked.Reset();
    39 	iCopyOfflineBlocked.Reset();
    40 	iCopyOfflineBlocked.Reset();
    40 	iCopyOnlineBlocked.Reset();
    41 	iCopyOnlineBlocked.Reset();
    43 // -----------------------------------------------------------------------------
    44 // -----------------------------------------------------------------------------
    44 // CFSMailFolderBase::~CFSMailFolderBase
    45 // CFSMailFolderBase::~CFSMailFolderBase
    45 // -----------------------------------------------------------------------------
    46 // -----------------------------------------------------------------------------
    46 EXPORT_C CFSMailFolderBase::~CFSMailFolderBase()
    47 EXPORT_C CFSMailFolderBase::~CFSMailFolderBase()
    47 {
    48 {
    48     FUNC_LOG;
    49     NM_FUNCTION;
       
    50     
    49 // <qmail> unnecessary iFolderName destruction removed </qmail>
    51 // <qmail> unnecessary iFolderName destruction removed </qmail>
    50 	iMoveOfflineBlocked.Reset();
    52 	iMoveOfflineBlocked.Reset();
    51 	iMoveOnlineBlocked.Reset();
    53 	iMoveOnlineBlocked.Reset();
    52 	iCopyOfflineBlocked.Reset();
    54 	iCopyOfflineBlocked.Reset();
    53 	iCopyOnlineBlocked.Reset();
    55 	iCopyOnlineBlocked.Reset();
    56 // -----------------------------------------------------------------------------
    58 // -----------------------------------------------------------------------------
    57 // CFSMailFolderBase::ConstructL
    59 // CFSMailFolderBase::ConstructL
    58 // -----------------------------------------------------------------------------
    60 // -----------------------------------------------------------------------------
    59 EXPORT_C void CFSMailFolderBase::ConstructL( TFSMailMsgId aFolderId )
    61 EXPORT_C void CFSMailFolderBase::ConstructL( TFSMailMsgId aFolderId )
    60 {
    62 {
    61     FUNC_LOG;
    63     NM_FUNCTION;
       
    64     
    62 // <qmail>
    65 // <qmail>
    63     iNmPrivateFolder = new NmFolderPrivate();
    66     iNmPrivateFolder = new NmFolderPrivate();
    64     iNmPrivateFolder->mFolderId = aFolderId.GetNmId();
    67     iNmPrivateFolder->mFolderId = aFolderId.GetNmId();
    65 // <qmail>
    68 // <qmail>
    66 }
    69 }
    68 // -----------------------------------------------------------------------------
    71 // -----------------------------------------------------------------------------
    69 // CFSMailFolderBase::NewLC
    72 // CFSMailFolderBase::NewLC
    70 // -----------------------------------------------------------------------------
    73 // -----------------------------------------------------------------------------
    71 EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewLC( TFSMailMsgId aFolderId )
    74 EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewLC( TFSMailMsgId aFolderId )
    72 {
    75 {
    73     FUNC_LOG;
    76     NM_FUNCTION;
    74   CFSMailFolderBase* folder = new (ELeave) CFSMailFolderBase();
    77     
    75   CleanupStack:: PushL(folder);
    78     CFSMailFolderBase* folder = new (ELeave) CFSMailFolderBase();
    76   folder->ConstructL(aFolderId);
    79     CleanupStack:: PushL(folder);
    77   return folder;
    80     folder->ConstructL(aFolderId);
       
    81     return folder;
    78 } 
    82 } 
    79 
    83 
    80 // -----------------------------------------------------------------------------
    84 // -----------------------------------------------------------------------------
    81 // CFSMailFolderBase::NewL
    85 // CFSMailFolderBase::NewL
    82 // -----------------------------------------------------------------------------
    86 // -----------------------------------------------------------------------------
    83 EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewL(const TFSMailMsgId aFolderId)
    87 EXPORT_C CFSMailFolderBase* CFSMailFolderBase::NewL(const TFSMailMsgId aFolderId)
    84 {
    88 {
    85     FUNC_LOG;
    89     NM_FUNCTION;
    86   CFSMailFolderBase* folder =  CFSMailFolderBase::NewLC(aFolderId);
    90     
    87   CleanupStack:: Pop(folder);
    91     CFSMailFolderBase* folder =  CFSMailFolderBase::NewLC(aFolderId);
    88   return folder;
    92     CleanupStack:: Pop(folder);
       
    93     return folder;
    89 }
    94 }
    90 
    95 
    91 // -----------------------------------------------------------------------------
    96 // -----------------------------------------------------------------------------
    92 // CFSMailFolderBase::GetFolderId
    97 // CFSMailFolderBase::GetFolderId
    93 // -----------------------------------------------------------------------------
    98 // -----------------------------------------------------------------------------
    94 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetFolderId() const
    99 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetFolderId() const
    95 {
   100 {
    96     FUNC_LOG;
   101     NM_FUNCTION;
       
   102     
    97 // <qmail>
   103 // <qmail>
    98 	return TFSMailMsgId(iNmPrivateFolder->mFolderId);
   104 	return TFSMailMsgId(iNmPrivateFolder->mFolderId);
    99 // </qmail>
   105 // </qmail>
   100 }
   106 }
   101 
   107 
   103 // -----------------------------------------------------------------------------
   109 // -----------------------------------------------------------------------------
   104 // CFSMailFolderBase::GetParentFolderId
   110 // CFSMailFolderBase::GetParentFolderId
   105 // -----------------------------------------------------------------------------
   111 // -----------------------------------------------------------------------------
   106 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetParentFolderId() const
   112 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetParentFolderId() const
   107 {
   113 {
   108     FUNC_LOG;
   114     NM_FUNCTION;
       
   115     
   109 // <qmail>
   116 // <qmail>
   110     return TFSMailMsgId(iNmPrivateFolder->mParentFolderId);
   117     return TFSMailMsgId(iNmPrivateFolder->mParentFolderId);
   111 // </qmail>
   118 // </qmail>
   112 }
   119 }
   113 
   120 
   114 // -----------------------------------------------------------------------------
   121 // -----------------------------------------------------------------------------
   115 // CFSMailFolderBase::SetParentFolderId
   122 // CFSMailFolderBase::SetParentFolderId
   116 // -----------------------------------------------------------------------------
   123 // -----------------------------------------------------------------------------
   117 EXPORT_C void CFSMailFolderBase::SetParentFolderId(TFSMailMsgId aFolderId)
   124 EXPORT_C void CFSMailFolderBase::SetParentFolderId(TFSMailMsgId aFolderId)
   118 {
   125 {
   119     FUNC_LOG;
   126     NM_FUNCTION;
       
   127     
   120 // <qmail>
   128 // <qmail>
   121     iNmPrivateFolder->mParentFolderId = aFolderId.GetNmId();
   129     iNmPrivateFolder->mParentFolderId = aFolderId.GetNmId();
   122 // </qmail>
   130 // </qmail>
   123 }
   131 }
   124 
   132 
   125 // -----------------------------------------------------------------------------
   133 // -----------------------------------------------------------------------------
   126 // CFSMailFolderBase::GetMailBoxId
   134 // CFSMailFolderBase::GetMailBoxId
   127 // -----------------------------------------------------------------------------
   135 // -----------------------------------------------------------------------------
   128 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetMailBoxId() const
   136 EXPORT_C TFSMailMsgId CFSMailFolderBase::GetMailBoxId() const
   129 {
   137 {
   130     FUNC_LOG;
   138     NM_FUNCTION;
       
   139     
   131 // <qmail>
   140 // <qmail>
   132 	return TFSMailMsgId(iNmPrivateFolder->mMailboxId);
   141 	return TFSMailMsgId(iNmPrivateFolder->mMailboxId);
   133 // </qmail>
   142 // </qmail>
   134 }
   143 }
   135 
   144 
   136 // -----------------------------------------------------------------------------
   145 // -----------------------------------------------------------------------------
   137 // CFSMailFolderBase::SetMailBoxId
   146 // CFSMailFolderBase::SetMailBoxId
   138 // -----------------------------------------------------------------------------
   147 // -----------------------------------------------------------------------------
   139 EXPORT_C void CFSMailFolderBase::SetMailBoxId(TFSMailMsgId aMailBoxId)
   148 EXPORT_C void CFSMailFolderBase::SetMailBoxId(TFSMailMsgId aMailBoxId)
   140 {
   149 {
   141     FUNC_LOG;
   150     NM_FUNCTION;
       
   151     
   142 // <qmail>
   152 // <qmail>
   143     iNmPrivateFolder->mMailboxId = aMailBoxId.GetNmId();
   153     iNmPrivateFolder->mMailboxId = aMailBoxId.GetNmId();
   144 // </qmail>
   154 // </qmail>
   145 }
   155 }
   146 
   156 
   148 // -----------------------------------------------------------------------------
   158 // -----------------------------------------------------------------------------
   149 // CFSMailFolderBase::GetFolderType
   159 // CFSMailFolderBase::GetFolderType
   150 // -----------------------------------------------------------------------------
   160 // -----------------------------------------------------------------------------
   151 EXPORT_C TFSFolderType CFSMailFolderBase::GetFolderType() const
   161 EXPORT_C TFSFolderType CFSMailFolderBase::GetFolderType() const
   152 {
   162 {
   153     FUNC_LOG;
   163     NM_FUNCTION;
       
   164     
   154 // <qmail>
   165 // <qmail>
   155     return static_cast<TFSFolderType>(iNmPrivateFolder->mFolderType);
   166     return static_cast<TFSFolderType>(iNmPrivateFolder->mFolderType);
   156 // </qmail>
   167 // </qmail>
   157 }
   168 }
   158 
   169 
   159 // -----------------------------------------------------------------------------
   170 // -----------------------------------------------------------------------------
   160 // CFSMailFolderBase::SetFolderType
   171 // CFSMailFolderBase::SetFolderType
   161 // -----------------------------------------------------------------------------
   172 // -----------------------------------------------------------------------------
   162 EXPORT_C void CFSMailFolderBase::SetFolderType(const TFSFolderType aFolderType)
   173 EXPORT_C void CFSMailFolderBase::SetFolderType(const TFSFolderType aFolderType)
   163 {
   174 {
   164     FUNC_LOG;
   175     NM_FUNCTION;
       
   176     
   165 // <qmail>
   177 // <qmail>
   166     iNmPrivateFolder->mFolderType = static_cast<NmFolderType>(aFolderType);
   178     iNmPrivateFolder->mFolderType = static_cast<NmFolderType>(aFolderType);
   167 // </qmail>
   179 // </qmail>
   168 }
   180 }
   169 
   181 
   170 // -----------------------------------------------------------------------------
   182 // -----------------------------------------------------------------------------
   171 // CFSMailFolderBase::GetFolderName
   183 // CFSMailFolderBase::GetFolderName
   172 // -----------------------------------------------------------------------------
   184 // -----------------------------------------------------------------------------
   173 EXPORT_C TDesC& CFSMailFolderBase::GetFolderName() const
   185 EXPORT_C TDesC& CFSMailFolderBase::GetFolderName() const
   174 {
   186 {
   175     FUNC_LOG;
   187     NM_FUNCTION;
       
   188     
   176 // <qmail>
   189 // <qmail>
   177     iTextPtr.Set(
   190     iTextPtr.Set(
   178         reinterpret_cast<const TUint16*> (iNmPrivateFolder->mName.utf16()),
   191         reinterpret_cast<const TUint16*> (iNmPrivateFolder->mName.utf16()),
   179         iNmPrivateFolder->mName.length());
   192         iNmPrivateFolder->mName.length());
   180     return iTextPtr;
   193     return iTextPtr;
   184 // -----------------------------------------------------------------------------
   197 // -----------------------------------------------------------------------------
   185 // CFSMailFolderBase::SetFolderName
   198 // CFSMailFolderBase::SetFolderName
   186 // -----------------------------------------------------------------------------
   199 // -----------------------------------------------------------------------------
   187 EXPORT_C void CFSMailFolderBase::SetFolderName(const TDesC& aFolderName)
   200 EXPORT_C void CFSMailFolderBase::SetFolderName(const TDesC& aFolderName)
   188 {
   201 {
   189     FUNC_LOG;
   202     NM_FUNCTION;
       
   203     
   190 // <qmail>
   204 // <qmail>
   191     QString qtName = QString::fromUtf16(aFolderName.Ptr(), aFolderName.Length());
   205     QString qtName = QString::fromUtf16(aFolderName.Ptr(), aFolderName.Length());
   192     iNmPrivateFolder->mName = qtName;
   206     iNmPrivateFolder->mName = qtName;
   193 // </qmail>
   207 // </qmail>
   194 }
   208 }
   196 // -----------------------------------------------------------------------------
   210 // -----------------------------------------------------------------------------
   197 // CFSMailFolderBase::GetMessageCount
   211 // CFSMailFolderBase::GetMessageCount
   198 // -----------------------------------------------------------------------------
   212 // -----------------------------------------------------------------------------
   199 EXPORT_C TUint CFSMailFolderBase::GetMessageCount() const
   213 EXPORT_C TUint CFSMailFolderBase::GetMessageCount() const
   200 {
   214 {
   201     FUNC_LOG;
   215     NM_FUNCTION;
       
   216     
   202 // <qmail>
   217 // <qmail>
   203     return (TUint)iNmPrivateFolder->mMessageCount;
   218     return (TUint)iNmPrivateFolder->mMessageCount;
   204 // </qmail>
   219 // </qmail>
   205 }
   220 }
   206 
   221 
   207 // -----------------------------------------------------------------------------
   222 // -----------------------------------------------------------------------------
   208 // CFSMailFolderBase::GetUnreadCount
   223 // CFSMailFolderBase::GetUnreadCount
   209 // -----------------------------------------------------------------------------
   224 // -----------------------------------------------------------------------------
   210 EXPORT_C TUint CFSMailFolderBase::GetUnreadCount() const
   225 EXPORT_C TUint CFSMailFolderBase::GetUnreadCount() const
   211 {
   226 {
   212     FUNC_LOG;
   227     NM_FUNCTION;
       
   228     
   213 // <qmail>
   229 // <qmail>
   214     return (TUint)iNmPrivateFolder->mUnreadMessageCount;
   230     return (TUint)iNmPrivateFolder->mUnreadMessageCount;
   215 // </qmail>
   231 // </qmail>
   216 }
   232 }
   217 
   233 
   218 // -----------------------------------------------------------------------------
   234 // -----------------------------------------------------------------------------
   219 // CFSMailFolderBase::GetUnseenCount
   235 // CFSMailFolderBase::GetUnseenCount
   220 // -----------------------------------------------------------------------------
   236 // -----------------------------------------------------------------------------
   221 EXPORT_C TUint CFSMailFolderBase::GetUnseenCount() const
   237 EXPORT_C TUint CFSMailFolderBase::GetUnseenCount() const
   222 {
   238 {
   223     FUNC_LOG;
   239     NM_FUNCTION;
       
   240     
   224 // <qmail>
   241 // <qmail>
   225     return (TUint)iNmPrivateFolder->mUnseenCount;
   242     return (TUint)iNmPrivateFolder->mUnseenCount;
   226 // </qmail>
   243 // </qmail>
   227 }
   244 }
   228 
   245 
   229 // -----------------------------------------------------------------------------
   246 // -----------------------------------------------------------------------------
   230 // CFSMailFolderBase::GetSubFolderCount
   247 // CFSMailFolderBase::GetSubFolderCount
   231 // -----------------------------------------------------------------------------
   248 // -----------------------------------------------------------------------------
   232 EXPORT_C TUint CFSMailFolderBase::GetSubFolderCount() const
   249 EXPORT_C TUint CFSMailFolderBase::GetSubFolderCount() const
   233 {
   250 {
   234     FUNC_LOG;
   251     NM_FUNCTION;
       
   252     
   235 // <qmail>
   253 // <qmail>
   236     return (TUint)iNmPrivateFolder->mSubFolderCount;
   254     return (TUint)iNmPrivateFolder->mSubFolderCount;
   237 // </qmail>
   255 // </qmail>
   238 }
   256 }
   239 // -----------------------------------------------------------------------------
   257 // -----------------------------------------------------------------------------
   240 // CFSMailFolderBase::SetMessageCount
   258 // CFSMailFolderBase::SetMessageCount
   241 // -----------------------------------------------------------------------------
   259 // -----------------------------------------------------------------------------
   242 EXPORT_C void CFSMailFolderBase::SetMessageCount( TUint aMessageCount )
   260 EXPORT_C void CFSMailFolderBase::SetMessageCount( TUint aMessageCount )
   243 {
   261 {
   244     FUNC_LOG;
   262     NM_FUNCTION;
       
   263     
   245 // <qmail>
   264 // <qmail>
   246     iNmPrivateFolder->mMessageCount = aMessageCount;
   265     iNmPrivateFolder->mMessageCount = aMessageCount;
   247 // </qmail>
   266 // </qmail>
   248 }
   267 }
   249 
   268 
   250 // -----------------------------------------------------------------------------
   269 // -----------------------------------------------------------------------------
   251 // CFSMailFolderBase::SetUnreadCount
   270 // CFSMailFolderBase::SetUnreadCount
   252 // -----------------------------------------------------------------------------
   271 // -----------------------------------------------------------------------------
   253 EXPORT_C void CFSMailFolderBase::SetUnreadCount( TUint aMessageCount )
   272 EXPORT_C void CFSMailFolderBase::SetUnreadCount( TUint aMessageCount )
   254 {
   273 {
   255     FUNC_LOG;
   274     NM_FUNCTION;
       
   275     
   256 // <qmail>
   276 // <qmail>
   257     iNmPrivateFolder->mUnreadMessageCount = aMessageCount;
   277     iNmPrivateFolder->mUnreadMessageCount = aMessageCount;
   258 // </qmail>
   278 // </qmail>
   259 }
   279 }
   260 
   280 
   261 // -----------------------------------------------------------------------------
   281 // -----------------------------------------------------------------------------
   262 // CFSMailFolderBase::SetUnseenCount
   282 // CFSMailFolderBase::SetUnseenCount
   263 // -----------------------------------------------------------------------------
   283 // -----------------------------------------------------------------------------
   264 EXPORT_C void CFSMailFolderBase::SetUnseenCount( TUint aMessageCount )
   284 EXPORT_C void CFSMailFolderBase::SetUnseenCount( TUint aMessageCount )
   265 {
   285 {
   266     FUNC_LOG;
   286     NM_FUNCTION;
       
   287     
   267 // <qmail>
   288 // <qmail>
   268     iNmPrivateFolder->mUnseenCount = aMessageCount;
   289     iNmPrivateFolder->mUnseenCount = aMessageCount;
   269 // </qmail>
   290 // </qmail>
   270 }
   291 }
   271 
   292 
   272 // -----------------------------------------------------------------------------
   293 // -----------------------------------------------------------------------------
   273 // CFSMailFolderBase::SetSubFolderCount
   294 // CFSMailFolderBase::SetSubFolderCount
   274 // -----------------------------------------------------------------------------
   295 // -----------------------------------------------------------------------------
   275 EXPORT_C void CFSMailFolderBase::SetSubFolderCount(TUint aFolderCount)
   296 EXPORT_C void CFSMailFolderBase::SetSubFolderCount(TUint aFolderCount)
   276 {
   297 {
   277     FUNC_LOG;
   298     NM_FUNCTION;
       
   299     
   278 // <qmail>
   300 // <qmail>
   279     iNmPrivateFolder->mSubFolderCount = aFolderCount;
   301     iNmPrivateFolder->mSubFolderCount = aFolderCount;
   280 // </qmail>
   302 // </qmail>
   281 }
   303 }
   282 
   304 
   284 // CFSMailFolder::BlockCopyFromL
   306 // CFSMailFolder::BlockCopyFromL
   285 // -----------------------------------------------------------------------------
   307 // -----------------------------------------------------------------------------
   286 EXPORT_C void CFSMailFolderBase::BlockCopyFromL( RArray<TFSFolderType> aFolderTypes, 
   308 EXPORT_C void CFSMailFolderBase::BlockCopyFromL( RArray<TFSFolderType> aFolderTypes, 
   287 													TFSMailBoxStatus aMailBoxStatus )
   309 													TFSMailBoxStatus aMailBoxStatus )
   288 	{
   310 	{
   289     FUNC_LOG;
   311     NM_FUNCTION;
       
   312     
   290 	switch(aMailBoxStatus)
   313 	switch(aMailBoxStatus)
   291 		{
   314 		{
   292 			case EFSMailBoxOnline:
   315 			case EFSMailBoxOnline:
   293 			for(TInt i=0;i<aFolderTypes.Count();i++)
   316 			for(TInt i=0;i<aFolderTypes.Count();i++)
   294 				{
   317 				{
   312 // CFSMailFolder::BlockMoveFromL
   335 // CFSMailFolder::BlockMoveFromL
   313 // -----------------------------------------------------------------------------
   336 // -----------------------------------------------------------------------------
   314 EXPORT_C void CFSMailFolderBase::BlockMoveFromL( RArray<TFSFolderType> aFolderTypes, 
   337 EXPORT_C void CFSMailFolderBase::BlockMoveFromL( RArray<TFSFolderType> aFolderTypes, 
   315 													TFSMailBoxStatus aMailBoxStatus )
   338 													TFSMailBoxStatus aMailBoxStatus )
   316 	{
   339 	{
   317     FUNC_LOG;
   340     NM_FUNCTION;
       
   341     
   318 	switch(aMailBoxStatus)
   342 	switch(aMailBoxStatus)
   319 		{
   343 		{
   320 			case EFSMailBoxOnline:
   344 			case EFSMailBoxOnline:
   321 			for(TInt i=0;i<aFolderTypes.Count();i++)
   345 			for(TInt i=0;i<aFolderTypes.Count();i++)
   322 				{
   346 				{
   340 // -----------------------------------------------------------------------------
   364 // -----------------------------------------------------------------------------
   341 // CFSMailFolderBase::GetNmFolder
   365 // CFSMailFolderBase::GetNmFolder
   342 // -----------------------------------------------------------------------------
   366 // -----------------------------------------------------------------------------
   343 EXPORT_C NmFolder* CFSMailFolderBase::GetNmFolder()
   367 EXPORT_C NmFolder* CFSMailFolderBase::GetNmFolder()
   344 {
   368 {
       
   369     NM_FUNCTION;
       
   370     
   345     NmFolder* nmFolder = new NmFolder(iNmPrivateFolder);
   371     NmFolder* nmFolder = new NmFolder(iNmPrivateFolder);
   346     return nmFolder;
   372     return nmFolder;
   347 }
   373 }
   348 // </qmail>
   374 // </qmail>
   349 
   375