MCPcopy Create free account
hub / github.com/MailCore/mailcore2 / fetchNamespace

Method fetchNamespace

src/core/imap/MCIMAPSession.cpp:3771–3825  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3769}
3770
3771HashMap * IMAPSession::fetchNamespace(ErrorCode * pError)
3772{
3773 HashMap * result;
3774 struct mailimap_namespace_data * namespace_data;
3775 int r;
3776
3777 loginIfNeeded(pError);
3778 if (* pError != ErrorNone)
3779 return NULL;
3780
3781 result = HashMap::hashMap();
3782 r = mailimap_namespace(mImap, &namespace_data);
3783 if (r == MAILIMAP_ERROR_STREAM) {
3784 mShouldDisconnect = true;
3785 * pError = ErrorConnection;
3786 return NULL;
3787 }
3788 else if (r == MAILIMAP_ERROR_PARSE) {
3789 mShouldDisconnect = true;
3790 * pError = ErrorParse;
3791 return NULL;
3792 }
3793 else if (hasError(r)) {
3794 * pError = ErrorNamespace;
3795 return NULL;
3796 }
3797
3798 IMAPNamespace * ns;
3799
3800 if (namespace_data->ns_personal != NULL) {
3801 ns = new IMAPNamespace();
3802 ns->importIMAPNamespace(namespace_data->ns_personal);
3803 result->setObjectForKey(IMAPNamespacePersonal, ns);
3804 ns->release();
3805 }
3806
3807 if (namespace_data->ns_other != NULL) {
3808 ns = new IMAPNamespace();
3809 ns->importIMAPNamespace(namespace_data->ns_other);
3810 result->setObjectForKey(IMAPNamespaceOther, ns);
3811 ns->release();
3812 }
3813
3814 if (namespace_data->ns_shared != NULL) {
3815 ns = new IMAPNamespace();
3816 ns->importIMAPNamespace(namespace_data->ns_shared);
3817 result->setObjectForKey(IMAPNamespaceShared, ns);
3818 ns->release();
3819 }
3820
3821 mailimap_namespace_data_free(namespace_data);
3822 * pError = ErrorNone;
3823
3824 return result;
3825}
3826
3827void IMAPSession::storeFlagsByUID(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, ErrorCode * pError)
3828{

Callers 1

mainMethod · 0.80

Calls 4

hasErrorFunction · 0.85
importIMAPNamespaceMethod · 0.80
setObjectForKeyMethod · 0.80
releaseMethod · 0.80

Tested by

no test coverage detected