mail::folder::readSubFolders — Enumerate subfolders
        
        
        #include <libmail/mail.H>
        
        
        class myCallback : public mail::callback {
        public:
            void success(std::string msg);
            void fail(std::string msg);
        };
        class myFolderCallback : public mail::callback::folderlist {
        public:
            void success(const std::vector<const mail::folder *> &folders);
        };
        mail::folder *folder;
| folder->readSubFolders( | myFolderCallback &folderCallback, | 
| myCallback &callback ); | 
A mail account contains folders that are arranged in a
      tree-like hierarchy. mail::folder::readSubFolders enumerates
      folder's
      subfolders.
Use mail::folder::hasSubFolders(3x)
        to check if folder
        contains subfolders, and invoke mail::folder::readSubFolders only if
        mail::folder::hasSubFolders
        returns true.
The application must wait until callback's success or fail method is invoked. The success method is invoked when this request
      is succesfully processed. The fail method is invoked if this request
      cannot be processed. The application must not destroy
      callback until either
      the success or fail method is invoked.
callback's
        fail method may be invoked
        even after other callback methods were invoked. This
        indicates that the request was partially completed before
        the error was encountered.
The application must not destroy folderCallback until this
        request fails or succeeds. folderCallback's success method is invoked just before the
        callback's
        success method.
The folderCallback.success
      method receives a vector of pointers to mail::folder objects, that enumerates
      folder's subfolders.
      The vector will be empty if folder does not have any
      subfolders.
Subfolders received by mail::callback::folder::success are
        linked to the same account that folder is linked to.
mail::folders are linked to their corresponding mail::accounts. A mail::folder created by one mail::account may not be used with a different mail::folder. All mail::folders created by a mail::account are invalidated when this mail::account object is destroyed. Note that the mail::folder objects are not automatically destroyed; the application is still responsible for destroying any remaining mail::folders, after their a mail::account is destroyed.
The folderCallback.success
        method receives a (possibly empty) vector of pointers to
        mail::folder objects. These
        objects will be destroyed when folderCallback.success terminates. The
        application must use mail::folder::clone(3x)
        to create copies of mail::folder objects it wants to use
        later.
Both folderCallback.success and myCallback.success method will be invoked
        if this request succeeds. folderCallback.success will be invoked
        before myCallback.success
        (since by definition this indicates that the request has
        been completed).
callback's
      success method is then invoked,
      after all mail::folder
      objects are destroyed.