aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Hoà V. DINH <dinh.viet.hoa@gmail.com>2014-10-23 21:07:31 -0700
committerGravatar Hoà V. DINH <dinh.viet.hoa@gmail.com>2014-10-23 21:07:31 -0700
commit2edc88f7cbd395d450cdee076afd698bed9cb25a (patch)
tree5fdd90ab6d32f910f53f200fe97de62b4335945f
parent8be6102aeb58ae756a2646086c3ce7a23f298a2e (diff)
parent5a2dae95647818843027b1c09c812c8a99c98c35 (diff)
Merge pull request #924 from CodaFi/NNTP-Cleanup
NNTP Cleanup
-rwxr-xr-xbuild-mac/mailcore2.xcodeproj/project.pbxproj126
-rw-r--r--build-mac/mailcore2.xcodeproj/project.xcworkspace/contents.xcworkspacedata7
-rw-r--r--build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/mailcore osx.xcscheme11
-rw-r--r--build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 ios.xcscheme11
-rw-r--r--build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 osx.xcscheme11
-rw-r--r--build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/test-ios.xcscheme2
-rw-r--r--build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/tests.xcscheme2
-rw-r--r--build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/unittest.xcscheme2
-rw-r--r--src/async/nntp/MCAsyncNNTP.h4
-rw-r--r--src/async/nntp/MCNNTPAsyncSession.cc38
-rw-r--r--src/async/nntp/MCNNTPAsyncSession.h13
-rw-r--r--src/async/nntp/MCNNTPFetchAllArticlesOperation.cc (renamed from src/async/nntp/MCNNTPFetchArticlesOperation.cc)18
-rw-r--r--src/async/nntp/MCNNTPFetchAllArticlesOperation.h (renamed from src/async/nntp/MCNNTPFetchArticlesOperation.h)8
-rw-r--r--src/async/nntp/MCNNTPFetchArticleOperation.cc16
-rw-r--r--src/async/nntp/MCNNTPFetchArticleOperation.h6
-rw-r--r--src/async/nntp/MCNNTPFetchOverviewOperation.cc68
-rw-r--r--src/async/nntp/MCNNTPFetchOverviewOperation.h45
-rw-r--r--src/async/nntp/MCNNTPFetchServerTimeOperation.cc34
-rw-r--r--src/async/nntp/MCNNTPFetchServerTimeOperation.h37
-rw-r--r--src/async/nntp/MCNNTPListNewsgroupsOperation.cc2
-rw-r--r--src/cmake/async.cmake4
-rw-r--r--src/cmake/objc.cmake4
-rw-r--r--src/cmake/public-headers.cmake11
-rw-r--r--src/core/abstract/MCMessageConstants.h1
-rw-r--r--src/core/nntp/MCNNTPSession.cc366
-rw-r--r--src/core/nntp/MCNNTPSession.h14
-rw-r--r--src/objc/nntp/MCONNTP.h4
-rw-r--r--src/objc/nntp/MCONNTPFetchAllArticlesOperation.h (renamed from src/objc/nntp/MCONNTPFetchArticlesOperation.h)4
-rw-r--r--src/objc/nntp/MCONNTPFetchAllArticlesOperation.mm (renamed from src/objc/nntp/MCONNTPFetchArticlesOperation.mm)8
-rw-r--r--src/objc/nntp/MCONNTPFetchOverviewOperation.h32
-rw-r--r--src/objc/nntp/MCONNTPFetchOverviewOperation.mm69
-rw-r--r--src/objc/nntp/MCONNTPFetchServerTimeOperation.h35
-rw-r--r--src/objc/nntp/MCONNTPFetchServerTimeOperation.mm70
-rw-r--r--src/objc/nntp/MCONNTPSession.h50
-rw-r--r--src/objc/nntp/MCONNTPSession.mm25
35 files changed, 1045 insertions, 113 deletions
diff --git a/build-mac/mailcore2.xcodeproj/project.pbxproj b/build-mac/mailcore2.xcodeproj/project.pbxproj
index 1c025752..8f9f6803 100755
--- a/build-mac/mailcore2.xcodeproj/project.pbxproj
+++ b/build-mac/mailcore2.xcodeproj/project.pbxproj
@@ -35,7 +35,7 @@
27780D4A19CFA32900C77E44 /* MCONNTPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376B199C005A005124E5 /* MCONNTPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780D4B19CFA32900C77E44 /* MCONNTPFetchArticleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376F199C007E005124E5 /* MCONNTPFetchArticleOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780D4C19CFA32900C77E44 /* MCONNTPListNewsgroupsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73789199C0260005124E5 /* MCONNTPListNewsgroupsOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 27780D4D19CFA32900C77E44 /* MCONNTPFetchArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchArticlesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4D19CFA32900C77E44 /* MCONNTPFetchAllArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780D4E19CFA32900C77E44 /* MCONNTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7378D199C02A8005124E5 /* MCONNTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780D4F19CFA32900C77E44 /* MCONNTPGroupInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73791199C0511005124E5 /* MCONNTPGroupInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780D5019CFA32900C77E44 /* MCOAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23616EDAA2B000DB34C /* MCOAbstract.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -158,7 +158,7 @@
27780DC519CFA33500C77E44 /* MCNNTPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73736199BF7F2005124E5 /* MCNNTPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780DC619CFA33600C77E44 /* MCNNTPFetchArticleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780DC719CFA33600C77E44 /* MCNNTPListNewsgroupsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7375B199BFDCA005124E5 /* MCNNTPListNewsgroupsOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 27780DC819CFA33600C77E44 /* MCNNTPFetchArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchArticlesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC819CFA33600C77E44 /* MCNNTPFetchAllArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780DC919CFA33600C77E44 /* MCNNTPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73745199BFA8C005124E5 /* MCNNTPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780DCA19CFA33600C77E44 /* MCNNTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73757199BFC8A005124E5 /* MCNNTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
27780DCB19CFA33700C77E44 /* MCNNTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7372F199BF704005124E5 /* MCNNTPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -287,7 +287,7 @@
27780E4619CFA3F500C77E44 /* MCONNTPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376B199C005A005124E5 /* MCONNTPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780E4719CFA3F500C77E44 /* MCONNTPFetchArticleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376F199C007E005124E5 /* MCONNTPFetchArticleOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780E4819CFA3F500C77E44 /* MCONNTPListNewsgroupsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73789199C0260005124E5 /* MCONNTPListNewsgroupsOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 27780E4919CFA3F500C77E44 /* MCONNTPFetchArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchArticlesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4919CFA3F500C77E44 /* MCONNTPFetchAllArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780E4A19CFA3F500C77E44 /* MCONNTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7378D199C02A8005124E5 /* MCONNTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780E4B19CFA3F500C77E44 /* MCONNTPGroupInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73791199C0511005124E5 /* MCONNTPGroupInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780E4C19CFA3F500C77E44 /* MCOAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23616EDAA2B000DB34C /* MCOAbstract.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -404,7 +404,7 @@
27780EBB19CFA40000C77E44 /* MCNNTPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73736199BF7F2005124E5 /* MCNNTPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780EBC19CFA40100C77E44 /* MCNNTPFetchArticleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780EBD19CFA40100C77E44 /* MCNNTPListNewsgroupsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7375B199BFDCA005124E5 /* MCNNTPListNewsgroupsOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 27780EBE19CFA40100C77E44 /* MCNNTPFetchArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchArticlesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EBE19CFA40100C77E44 /* MCNNTPFetchAllArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780EBF19CFA40100C77E44 /* MCNNTPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73745199BFA8C005124E5 /* MCNNTPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780EC019CFA40100C77E44 /* MCNNTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73757199BFC8A005124E5 /* MCNNTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
27780EC119CFA40200C77E44 /* MCNNTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7372F199BF704005124E5 /* MCNNTPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -558,6 +558,22 @@
84B639F417F2839C003B5BA2 /* MCIMAPNoopOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84B639EC17F280F3003B5BA2 /* MCIMAPNoopOperation.h */; };
84B639F517F2839C003B5BA2 /* MCPOPNoopOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84B639E717F27EBD003B5BA2 /* MCPOPNoopOperation.h */; };
84B639F617F2839C003B5BA2 /* MCSMTPNoopOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84B639E217F279BB003B5BA2 /* MCSMTPNoopOperation.h */; };
+ 84CFA98319F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84CFA98219F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.mm */; };
+ 84CFA98419F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84CFA98219F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.mm */; };
+ 84CFA98719F7159700FE35D2 /* MCNNTPFetchOverviewOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84CFA98519F7159700FE35D2 /* MCNNTPFetchOverviewOperation.cc */; };
+ 84CFA98819F7159700FE35D2 /* MCNNTPFetchOverviewOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84CFA98519F7159700FE35D2 /* MCNNTPFetchOverviewOperation.cc */; };
+ 84CFA98919F7168300FE35D2 /* MCNNTPFetchOverviewOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CFA98619F7159700FE35D2 /* MCNNTPFetchOverviewOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 84CFA98A19F7168400FE35D2 /* MCNNTPFetchOverviewOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CFA98619F7159700FE35D2 /* MCNNTPFetchOverviewOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 84CFA98B19F716EE00FE35D2 /* MCONNTPFetchOverviewOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CFA98119F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 84CFA98C19F716EF00FE35D2 /* MCONNTPFetchOverviewOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CFA98119F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 84CFA98F19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84CFA98D19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.cc */; };
+ 84CFA99019F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84CFA98D19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.cc */; };
+ 84CFA99119F725AF00FE35D2 /* MCNNTPFetchServerTimeOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CFA98E19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 84CFA99219F725B000FE35D2 /* MCNNTPFetchServerTimeOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CFA98E19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 84CFA99519F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84CFA99419F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.mm */; };
+ 84CFA99619F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84CFA99419F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.mm */; };
+ 84CFA99719F725D300FE35D2 /* MCONNTPFetchServerTimeOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CFA99319F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 84CFA99819F725D400FE35D2 /* MCONNTPFetchServerTimeOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CFA99319F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
84D7372C199BF66C005124E5 /* MCNNTPAsyncSession.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D7372A199BF66C005124E5 /* MCNNTPAsyncSession.cc */; };
84D7372D199BF66C005124E5 /* MCNNTPAsyncSession.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D7372A199BF66C005124E5 /* MCNNTPAsyncSession.cc */; };
84D73730199BF704005124E5 /* MCNNTPOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D7372E199BF704005124E5 /* MCNNTPOperation.cc */; };
@@ -570,8 +586,8 @@
84D7373A199BF81D005124E5 /* MCNNTPOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7372F199BF704005124E5 /* MCNNTPOperation.h */; };
84D7373D199BF83B005124E5 /* MCNNTPFetchArticleOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D7373B199BF83B005124E5 /* MCNNTPFetchArticleOperation.cc */; };
84D7373E199BF83B005124E5 /* MCNNTPFetchArticleOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D7373B199BF83B005124E5 /* MCNNTPFetchArticleOperation.cc */; };
- 84D73742199BF963005124E5 /* MCNNTPFetchArticlesOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D73740199BF963005124E5 /* MCNNTPFetchArticlesOperation.cc */; };
- 84D73743199BF963005124E5 /* MCNNTPFetchArticlesOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D73740199BF963005124E5 /* MCNNTPFetchArticlesOperation.cc */; };
+ 84D73742199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D73740199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.cc */; };
+ 84D73743199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D73740199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.cc */; };
84D73746199BFA8C005124E5 /* MCNNTPCheckAccountOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D73744199BFA8C005124E5 /* MCNNTPCheckAccountOperation.cc */; };
84D73747199BFA8C005124E5 /* MCNNTPCheckAccountOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 84D73744199BFA8C005124E5 /* MCNNTPCheckAccountOperation.cc */; };
84D73748199BFACA005124E5 /* MCNNTPAsyncSession.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7372B199BF66C005124E5 /* MCNNTPAsyncSession.h */; };
@@ -581,9 +597,9 @@
84D7374C199BFB9C005124E5 /* MCNNTPFetchHeaderOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73736199BF7F2005124E5 /* MCNNTPFetchHeaderOperation.h */; };
84D7374D199BFB9F005124E5 /* MCNNTPFetchArticleOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */; };
84D7374E199BFBBA005124E5 /* MCNNTPFetchHeaderOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73736199BF7F2005124E5 /* MCNNTPFetchHeaderOperation.h */; };
- 84D7374F199BFBC8005124E5 /* MCNNTPFetchArticlesOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchArticlesOperation.h */; };
+ 84D7374F199BFBC8005124E5 /* MCNNTPFetchAllArticlesOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.h */; };
84D73750199BFBD9005124E5 /* MCNNTPFetchArticleOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */; };
- 84D73751199BFBDF005124E5 /* MCNNTPFetchArticlesOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchArticlesOperation.h */; };
+ 84D73751199BFBDF005124E5 /* MCNNTPFetchAllArticlesOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.h */; };
84D73752199BFBE3005124E5 /* MCNNTPCheckAccountOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73745199BFA8C005124E5 /* MCNNTPCheckAccountOperation.h */; };
84D73753199BFBE6005124E5 /* MCNNTPCheckAccountOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73745199BFA8C005124E5 /* MCNNTPCheckAccountOperation.h */; };
84D73754199BFBEC005124E5 /* MCNNTPOperationCallback.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7373F199BF887005124E5 /* MCNNTPOperationCallback.h */; };
@@ -602,8 +618,8 @@
84D7376E199C005A005124E5 /* MCONNTPFetchHeaderOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D7376C199C005A005124E5 /* MCONNTPFetchHeaderOperation.mm */; };
84D73771199C007E005124E5 /* MCONNTPFetchArticleOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D73770199C007E005124E5 /* MCONNTPFetchArticleOperation.mm */; };
84D73772199C007E005124E5 /* MCONNTPFetchArticleOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D73770199C007E005124E5 /* MCONNTPFetchArticleOperation.mm */; };
- 84D73775199C00AB005124E5 /* MCONNTPFetchArticlesOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D73774199C00AB005124E5 /* MCONNTPFetchArticlesOperation.mm */; };
- 84D73776199C00AB005124E5 /* MCONNTPFetchArticlesOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D73774199C00AB005124E5 /* MCONNTPFetchArticlesOperation.mm */; };
+ 84D73775199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D73774199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.mm */; };
+ 84D73776199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D73774199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.mm */; };
84D7377B199C00F5005124E5 /* MCONNTP.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73761199BFF80005124E5 /* MCONNTP.h */; };
84D7377C199C00F7005124E5 /* MCONNTP.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73761199BFF80005124E5 /* MCONNTP.h */; };
84D7377D199C00FE005124E5 /* MCONNTPSession.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73762199BFFC7005124E5 /* MCONNTPSession.h */; };
@@ -611,11 +627,11 @@
84D7377F199C0104005124E5 /* MCONNTPOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73766199BFFFC005124E5 /* MCONNTPOperation.h */; };
84D73780199C0107005124E5 /* MCONNTPFetchHeaderOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7376B199C005A005124E5 /* MCONNTPFetchHeaderOperation.h */; };
84D73781199C010A005124E5 /* MCONNTPFetchArticleOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7376F199C007E005124E5 /* MCONNTPFetchArticleOperation.h */; };
- 84D73782199C010B005124E5 /* MCONNTPFetchArticlesOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchArticlesOperation.h */; };
+ 84D73782199C010B005124E5 /* MCONNTPFetchAllArticlesOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.h */; };
84D73784199C0114005124E5 /* MCONNTPOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73766199BFFFC005124E5 /* MCONNTPOperation.h */; };
84D73785199C0117005124E5 /* MCONNTPFetchHeaderOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7376B199C005A005124E5 /* MCONNTPFetchHeaderOperation.h */; };
84D73786199C0118005124E5 /* MCONNTPFetchArticleOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D7376F199C007E005124E5 /* MCONNTPFetchArticleOperation.h */; };
- 84D73787199C011A005124E5 /* MCONNTPFetchArticlesOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchArticlesOperation.h */; };
+ 84D73787199C011A005124E5 /* MCONNTPFetchAllArticlesOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.h */; };
84D7378B199C0260005124E5 /* MCONNTPListNewsgroupsOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D7378A199C0260005124E5 /* MCONNTPListNewsgroupsOperation.mm */; };
84D7378C199C0260005124E5 /* MCONNTPListNewsgroupsOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D7378A199C0260005124E5 /* MCONNTPListNewsgroupsOperation.mm */; };
84D7378F199C02A8005124E5 /* MCONNTPDisconnectOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84D7378E199C02A8005124E5 /* MCONNTPDisconnectOperation.mm */; };
@@ -1459,7 +1475,7 @@
C6F61FA0170187B80073032E /* MCOIMAPFolderInfoOperation.h in CopyFiles */,
C6F61FA4170187C30073032E /* MCOIMAPFetchMessagesOperation.h in CopyFiles */,
84D73781199C010A005124E5 /* MCONNTPFetchArticleOperation.h in CopyFiles */,
- 84D73782199C010B005124E5 /* MCONNTPFetchArticlesOperation.h in CopyFiles */,
+ 84D73782199C010B005124E5 /* MCONNTPFetchAllArticlesOperation.h in CopyFiles */,
C6F61FA3170187BD0073032E /* MCOIMAPCopyMessagesOperation.h in CopyFiles */,
C6D6F95A171E5D60006F5B28 /* MCJSON.h in CopyFiles */,
C6F61FA2170187BC0073032E /* MCOIMAPAppendMessageOperation.h in CopyFiles */,
@@ -1487,7 +1503,7 @@
C623C59016FE71B2001BBEFC /* MCOIMAPOperation.h in CopyFiles */,
C6F5B9F616FEBB4900D9DABD /* MCOIMAPMessage.h in CopyFiles */,
84D73750199BFBD9005124E5 /* MCNNTPFetchArticleOperation.h in CopyFiles */,
- 84D7374F199BFBC8005124E5 /* MCNNTPFetchArticlesOperation.h in CopyFiles */,
+ 84D7374F199BFBC8005124E5 /* MCNNTPFetchAllArticlesOperation.h in CopyFiles */,
C623C58916FD8B71001BBEFC /* MCOUtils.h in CopyFiles */,
C64EA74F169E859600778456 /* MCAbstractMessage.h in CopyFiles */,
C623C58816FD6DF6001BBEFC /* NSValue+MCO.h in CopyFiles */,
@@ -1624,7 +1640,7 @@
84E65534199BE2BF00EC8CC4 /* MCNNTPGroupInfo.h in CopyFiles */,
84D73785199C0117005124E5 /* MCONNTPFetchHeaderOperation.h in CopyFiles */,
84D73739199BF81A005124E5 /* MCNNTPOperation.h in CopyFiles */,
- 84D73787199C011A005124E5 /* MCONNTPFetchArticlesOperation.h in CopyFiles */,
+ 84D73787199C011A005124E5 /* MCONNTPFetchAllArticlesOperation.h in CopyFiles */,
84391344199C3AB200FEFCDD /* MCONNTPDisconnectOperation.h in CopyFiles */,
84391343199C3AAA00FEFCDD /* MCONNTPListNewsgroupsOperation.h in CopyFiles */,
84D73786199C0118005124E5 /* MCONNTPFetchArticleOperation.h in CopyFiles */,
@@ -1638,7 +1654,7 @@
84D7374D199BFB9F005124E5 /* MCNNTPFetchArticleOperation.h in CopyFiles */,
DAE42E8A178F7E2200E0DB8F /* MCOIMAPMessageRenderingOperation.h in CopyFiles */,
C6E6652F1791B2530063F2CF /* MCIMAPMessageRenderingOperation.h in CopyFiles */,
- 84D73751199BFBDF005124E5 /* MCNNTPFetchArticlesOperation.h in CopyFiles */,
+ 84D73751199BFBDF005124E5 /* MCNNTPFetchAllArticlesOperation.h in CopyFiles */,
9E774D8B1767CD3C0065EB9B /* MCIMAPFolderStatus.h in CopyFiles */,
84D73755199BFBF2005124E5 /* MCNNTPOperationCallback.h in CopyFiles */,
9EF9AB25175F40C70027FA3B /* MCIMAPFolderStatusOperation.h in CopyFiles */,
@@ -1844,19 +1860,27 @@
84B639EC17F280F3003B5BA2 /* MCIMAPNoopOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCIMAPNoopOperation.h; sourceTree = "<group>"; };
84B639EF17F282B4003B5BA2 /* MCOPOPNoopOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCOPOPNoopOperation.h; sourceTree = "<group>"; };
84B639F017F282B4003B5BA2 /* MCOPOPNoopOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCOPOPNoopOperation.mm; sourceTree = "<group>"; };
- 84D73729199BF63F005124E5 /* MCAsyncNNTP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCAsyncNNTP.h; sourceTree = "<group>"; };
- 84D7372A199BF66C005124E5 /* MCNNTPAsyncSession.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPAsyncSession.cc; sourceTree = "<group>"; };
+ 84CFA98119F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPFetchOverviewOperation.h; sourceTree = "<group>"; };
+ 84CFA98219F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCONNTPFetchOverviewOperation.mm; sourceTree = "<group>"; };
+ 84CFA98519F7159700FE35D2 /* MCNNTPFetchOverviewOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPFetchOverviewOperation.cc; sourceTree = "<group>"; };
+ 84CFA98619F7159700FE35D2 /* MCNNTPFetchOverviewOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPFetchOverviewOperation.h; sourceTree = "<group>"; };
+ 84CFA98D19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPFetchServerTimeOperation.cc; sourceTree = "<group>"; };
+ 84CFA98E19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPFetchServerTimeOperation.h; sourceTree = "<group>"; };
+ 84CFA99319F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPFetchServerTimeOperation.h; sourceTree = "<group>"; };
+ 84CFA99419F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCONNTPFetchServerTimeOperation.mm; sourceTree = "<group>"; };
+ 84D73729199BF63F005124E5 /* MCAsyncNNTP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = MCAsyncNNTP.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
+ 84D7372A199BF66C005124E5 /* MCNNTPAsyncSession.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = MCNNTPAsyncSession.cc; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
84D7372B199BF66C005124E5 /* MCNNTPAsyncSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPAsyncSession.h; sourceTree = "<group>"; };
84D7372E199BF704005124E5 /* MCNNTPOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPOperation.cc; sourceTree = "<group>"; };
84D7372F199BF704005124E5 /* MCNNTPOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPOperation.h; sourceTree = "<group>"; };
84D73732199BF754005124E5 /* MCNNTPProgressCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MCNNTPProgressCallback.h; path = nntp/MCNNTPProgressCallback.h; sourceTree = "<group>"; };
84D73735199BF7F2005124E5 /* MCNNTPFetchHeaderOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPFetchHeaderOperation.cc; sourceTree = "<group>"; };
84D73736199BF7F2005124E5 /* MCNNTPFetchHeaderOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPFetchHeaderOperation.h; sourceTree = "<group>"; };
- 84D7373B199BF83B005124E5 /* MCNNTPFetchArticleOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPFetchArticleOperation.cc; sourceTree = "<group>"; };
- 84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPFetchArticleOperation.h; sourceTree = "<group>"; };
+ 84D7373B199BF83B005124E5 /* MCNNTPFetchArticleOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = MCNNTPFetchArticleOperation.cc; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
+ 84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = MCNNTPFetchArticleOperation.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
84D7373F199BF887005124E5 /* MCNNTPOperationCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPOperationCallback.h; sourceTree = "<group>"; };
- 84D73740199BF963005124E5 /* MCNNTPFetchArticlesOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPFetchArticlesOperation.cc; sourceTree = "<group>"; };
- 84D73741199BF963005124E5 /* MCNNTPFetchArticlesOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPFetchArticlesOperation.h; sourceTree = "<group>"; };
+ 84D73740199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = MCNNTPFetchAllArticlesOperation.cc; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
+ 84D73741199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = MCNNTPFetchAllArticlesOperation.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
84D73744199BFA8C005124E5 /* MCNNTPCheckAccountOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPCheckAccountOperation.cc; sourceTree = "<group>"; };
84D73745199BFA8C005124E5 /* MCNNTPCheckAccountOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPCheckAccountOperation.h; sourceTree = "<group>"; };
84D73756199BFC8A005124E5 /* MCNNTPDisconnectOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCNNTPDisconnectOperation.cc; sourceTree = "<group>"; };
@@ -1865,7 +1889,7 @@
84D7375B199BFDCA005124E5 /* MCNNTPListNewsgroupsOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCNNTPListNewsgroupsOperation.h; sourceTree = "<group>"; };
84D73761199BFF80005124E5 /* MCONNTP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTP.h; sourceTree = "<group>"; };
84D73762199BFFC7005124E5 /* MCONNTPSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPSession.h; sourceTree = "<group>"; };
- 84D73763199BFFC7005124E5 /* MCONNTPSession.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCONNTPSession.mm; sourceTree = "<group>"; };
+ 84D73763199BFFC7005124E5 /* MCONNTPSession.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MCONNTPSession.mm; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
84D73766199BFFFC005124E5 /* MCONNTPOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPOperation.h; sourceTree = "<group>"; };
84D73767199BFFFC005124E5 /* MCONNTPOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCONNTPOperation.mm; sourceTree = "<group>"; };
84D7376A199C0014005124E5 /* MCONNTPOperation+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MCONNTPOperation+Private.h"; sourceTree = "<group>"; };
@@ -1873,8 +1897,8 @@
84D7376C199C005A005124E5 /* MCONNTPFetchHeaderOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCONNTPFetchHeaderOperation.mm; sourceTree = "<group>"; };
84D7376F199C007E005124E5 /* MCONNTPFetchArticleOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPFetchArticleOperation.h; sourceTree = "<group>"; };
84D73770199C007E005124E5 /* MCONNTPFetchArticleOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCONNTPFetchArticleOperation.mm; sourceTree = "<group>"; };
- 84D73773199C00AB005124E5 /* MCONNTPFetchArticlesOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPFetchArticlesOperation.h; sourceTree = "<group>"; };
- 84D73774199C00AB005124E5 /* MCONNTPFetchArticlesOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCONNTPFetchArticlesOperation.mm; sourceTree = "<group>"; };
+ 84D73773199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPFetchAllArticlesOperation.h; sourceTree = "<group>"; };
+ 84D73774199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = MCONNTPFetchAllArticlesOperation.mm; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
84D73789199C0260005124E5 /* MCONNTPListNewsgroupsOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPListNewsgroupsOperation.h; sourceTree = "<group>"; };
84D7378A199C0260005124E5 /* MCONNTPListNewsgroupsOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCONNTPListNewsgroupsOperation.mm; sourceTree = "<group>"; };
84D7378D199C02A8005124E5 /* MCONNTPDisconnectOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCONNTPDisconnectOperation.h; sourceTree = "<group>"; };
@@ -2429,8 +2453,12 @@
84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */,
84D7375A199BFDCA005124E5 /* MCNNTPListNewsgroupsOperation.cc */,
84D7375B199BFDCA005124E5 /* MCNNTPListNewsgroupsOperation.h */,
- 84D73740199BF963005124E5 /* MCNNTPFetchArticlesOperation.cc */,
- 84D73741199BF963005124E5 /* MCNNTPFetchArticlesOperation.h */,
+ 84CFA98519F7159700FE35D2 /* MCNNTPFetchOverviewOperation.cc */,
+ 84CFA98619F7159700FE35D2 /* MCNNTPFetchOverviewOperation.h */,
+ 84D73740199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.cc */,
+ 84D73741199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.h */,
+ 84CFA98D19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.cc */,
+ 84CFA98E19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.h */,
84D73744199BFA8C005124E5 /* MCNNTPCheckAccountOperation.cc */,
84D73745199BFA8C005124E5 /* MCNNTPCheckAccountOperation.h */,
84D73756199BFC8A005124E5 /* MCNNTPDisconnectOperation.cc */,
@@ -2457,8 +2485,12 @@
84D73770199C007E005124E5 /* MCONNTPFetchArticleOperation.mm */,
84D73789199C0260005124E5 /* MCONNTPListNewsgroupsOperation.h */,
84D7378A199C0260005124E5 /* MCONNTPListNewsgroupsOperation.mm */,
- 84D73773199C00AB005124E5 /* MCONNTPFetchArticlesOperation.h */,
- 84D73774199C00AB005124E5 /* MCONNTPFetchArticlesOperation.mm */,
+ 84CFA98119F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.h */,
+ 84CFA98219F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.mm */,
+ 84D73773199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.h */,
+ 84D73774199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.mm */,
+ 84CFA99319F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.h */,
+ 84CFA99419F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.mm */,
84D7378D199C02A8005124E5 /* MCONNTPDisconnectOperation.h */,
84D7378E199C02A8005124E5 /* MCONNTPDisconnectOperation.mm */,
84D73791199C0511005124E5 /* MCONNTPGroupInfo.h */,
@@ -3190,6 +3222,7 @@
27780E3819CFA3F500C77E44 /* MCOPOPFetchMessageOperation.h in Headers */,
27780E3919CFA3F500C77E44 /* MCOPOPFetchMessagesOperation.h in Headers */,
27780E3A19CFA3F500C77E44 /* MCOPOPNoopOperation.h in Headers */,
+ 84CFA98B19F716EE00FE35D2 /* MCONNTPFetchOverviewOperation.h in Headers */,
27780E3B19CFA3F500C77E44 /* MCOPOPMessageInfo.h in Headers */,
27780E3C19CFA3F500C77E44 /* MCOSMTP.h in Headers */,
27780E3D19CFA3F500C77E44 /* MCOSMTPSession.h in Headers */,
@@ -3202,7 +3235,7 @@
27780E4619CFA3F500C77E44 /* MCONNTPFetchHeaderOperation.h in Headers */,
27780E4719CFA3F500C77E44 /* MCONNTPFetchArticleOperation.h in Headers */,
27780E4819CFA3F500C77E44 /* MCONNTPListNewsgroupsOperation.h in Headers */,
- 27780E4919CFA3F500C77E44 /* MCONNTPFetchArticlesOperation.h in Headers */,
+ 27780E4919CFA3F500C77E44 /* MCONNTPFetchAllArticlesOperation.h in Headers */,
27780E4A19CFA3F500C77E44 /* MCONNTPDisconnectOperation.h in Headers */,
27780E4B19CFA3F500C77E44 /* MCONNTPGroupInfo.h in Headers */,
27780E4C19CFA3F500C77E44 /* MCOAbstract.h in Headers */,
@@ -3214,6 +3247,7 @@
27780E5519CFA3F600C77E44 /* MCOConstants.h in Headers */,
27780E5619CFA3F600C77E44 /* MCOMessageHeader.h in Headers */,
27780E5819CFA3F600C77E44 /* MCOHTMLRendererDelegate.h in Headers */,
+ 84CFA98A19F7168400FE35D2 /* MCNNTPFetchOverviewOperation.h in Headers */,
27780E5919CFA3F600C77E44 /* MCOHTMLRendererIMAPDelegate.h in Headers */,
27780E5A19CFA3F600C77E44 /* MCOAbstractMessageRendererCallback.h in Headers */,
27780E5B19CFA3F600C77E44 /* MCOIMAP.h in Headers */,
@@ -3262,8 +3296,10 @@
27780E8919CFA3FA00C77E44 /* NSIndexSet+MCO.h in Headers */,
27780E8A19CFA3FA00C77E44 /* NSSet+MCO.h in Headers */,
27780E8B19CFA3FA00C77E44 /* MCOMailProvider.h in Headers */,
+ 84CFA99119F725AF00FE35D2 /* MCNNTPFetchServerTimeOperation.h in Headers */,
27780E8C19CFA3FA00C77E44 /* MCOMailProvidersManager.h in Headers */,
27780E8D19CFA3FA00C77E44 /* MCONetService.h in Headers */,
+ 84CFA99719F725D300FE35D2 /* MCONNTPFetchServerTimeOperation.h in Headers */,
27780E8E19CFA3FA00C77E44 /* MCOProvider.h in Headers */,
27780E8F19CFA3FA00C77E44 /* MCObjC.h in Headers */,
27780E9019CFA3FA00C77E44 /* MCAsyncIMAP.h in Headers */,
@@ -3312,7 +3348,7 @@
27780EBB19CFA40000C77E44 /* MCNNTPFetchHeaderOperation.h in Headers */,
27780EBC19CFA40100C77E44 /* MCNNTPFetchArticleOperation.h in Headers */,
27780EBD19CFA40100C77E44 /* MCNNTPListNewsgroupsOperation.h in Headers */,
- 27780EBE19CFA40100C77E44 /* MCNNTPFetchArticlesOperation.h in Headers */,
+ 27780EBE19CFA40100C77E44 /* MCNNTPFetchAllArticlesOperation.h in Headers */,
27780EBF19CFA40100C77E44 /* MCNNTPCheckAccountOperation.h in Headers */,
27780EC019CFA40100C77E44 /* MCNNTPDisconnectOperation.h in Headers */,
27780EC119CFA40200C77E44 /* MCNNTPOperation.h in Headers */,
@@ -3449,11 +3485,12 @@
27780D4419CFA32900C77E44 /* MCOSMTPOperation.h in Headers */,
27780D4619CFA32900C77E44 /* MCONNTP.h in Headers */,
27780D4719CFA32900C77E44 /* MCONNTPSession.h in Headers */,
+ 84CFA98C19F716EF00FE35D2 /* MCONNTPFetchOverviewOperation.h in Headers */,
27780D4819CFA32900C77E44 /* MCONNTPOperation.h in Headers */,
27780D4A19CFA32900C77E44 /* MCONNTPFetchHeaderOperation.h in Headers */,
27780D4B19CFA32900C77E44 /* MCONNTPFetchArticleOperation.h in Headers */,
27780D4C19CFA32900C77E44 /* MCONNTPListNewsgroupsOperation.h in Headers */,
- 27780D4D19CFA32900C77E44 /* MCONNTPFetchArticlesOperation.h in Headers */,
+ 27780D4D19CFA32900C77E44 /* MCONNTPFetchAllArticlesOperation.h in Headers */,
27780D4E19CFA32900C77E44 /* MCONNTPDisconnectOperation.h in Headers */,
27780D4F19CFA32900C77E44 /* MCONNTPGroupInfo.h in Headers */,
27780D5019CFA32900C77E44 /* MCOAbstract.h in Headers */,
@@ -3473,6 +3510,7 @@
27780D6219CFA32A00C77E44 /* MCOIMAPMessage.h in Headers */,
27780D6319CFA32A00C77E44 /* MCOIMAPMessagePart.h in Headers */,
27780D6419CFA32A00C77E44 /* MCOIMAPMultipart.h in Headers */,
+ 84CFA98919F7168300FE35D2 /* MCNNTPFetchOverviewOperation.h in Headers */,
27780D6519CFA32A00C77E44 /* MCOIMAPNamespace.h in Headers */,
27780D6619CFA32A00C77E44 /* MCOIMAPNamespaceItem.h in Headers */,
27780D6719CFA32A00C77E44 /* MCOIMAPPart.h in Headers */,
@@ -3521,8 +3559,10 @@
27780D9519CFA32E00C77E44 /* MCOMailProvider.h in Headers */,
27780D9619CFA32E00C77E44 /* MCOMailProvidersManager.h in Headers */,
27780D9719CFA32F00C77E44 /* MCONetService.h in Headers */,
+ 84CFA99219F725B000FE35D2 /* MCNNTPFetchServerTimeOperation.h in Headers */,
27780D9819CFA32F00C77E44 /* MCOProvider.h in Headers */,
27780D9919CFA32F00C77E44 /* MCObjC.h in Headers */,
+ 84CFA99819F725D400FE35D2 /* MCONNTPFetchServerTimeOperation.h in Headers */,
27780D9A19CFA32F00C77E44 /* MCAsyncIMAP.h in Headers */,
27780D9B19CFA32F00C77E44 /* MCIMAPAsyncConnection.h in Headers */,
27780D9C19CFA32F00C77E44 /* MCIMAPAsyncSession.h in Headers */,
@@ -3569,7 +3609,7 @@
27780DC519CFA33500C77E44 /* MCNNTPFetchHeaderOperation.h in Headers */,
27780DC619CFA33600C77E44 /* MCNNTPFetchArticleOperation.h in Headers */,
27780DC719CFA33600C77E44 /* MCNNTPListNewsgroupsOperation.h in Headers */,
- 27780DC819CFA33600C77E44 /* MCNNTPFetchArticlesOperation.h in Headers */,
+ 27780DC819CFA33600C77E44 /* MCNNTPFetchAllArticlesOperation.h in Headers */,
27780DC919CFA33600C77E44 /* MCNNTPCheckAccountOperation.h in Headers */,
27780DCA19CFA33600C77E44 /* MCNNTPDisconnectOperation.h in Headers */,
27780DCB19CFA33700C77E44 /* MCNNTPOperation.h in Headers */,
@@ -3821,7 +3861,7 @@
C64EA52E169E772200778456 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0510;
+ LastUpgradeCheck = 0610;
ORGANIZATIONNAME = MailCore;
TargetAttributes = {
C6B5AE0119F630B3001352A6 = {
@@ -3981,6 +4021,7 @@
C64EA704169E847800778456 /* MCArray.cc in Sources */,
C6E665B51796500B0063F2CF /* MCZip.cc in Sources */,
84B639E317F279BB003B5BA2 /* MCSMTPNoopOperation.cc in Sources */,
+ 84CFA98319F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.mm in Sources */,
C64EA706169E847800778456 /* MCAssert.c in Sources */,
84D73793199C0511005124E5 /* MCONNTPGroupInfo.mm in Sources */,
C64EA708169E847800778456 /* MCData.cc in Sources */,
@@ -3998,8 +4039,9 @@
C64EA723169E847800778456 /* MCIMAPFolder.cc in Sources */,
C64EA725169E847800778456 /* MCIMAPMessage.cc in Sources */,
C64EA727169E847800778456 /* MCIMAPMessagePart.cc in Sources */,
- 84D73775199C00AB005124E5 /* MCONNTPFetchArticlesOperation.mm in Sources */,
+ 84D73775199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.mm in Sources */,
C64EA729169E847800778456 /* MCIMAPMultipart.cc in Sources */,
+ 84CFA99519F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.mm in Sources */,
C64EA72B169E847800778456 /* MCIMAPNamespace.cc in Sources */,
C64EA72D169E847800778456 /* MCIMAPNamespaceItem.cc in Sources */,
C64EA72F169E847800778456 /* MCIMAPPart.cc in Sources */,
@@ -4029,7 +4071,7 @@
C64EA80216A295E400778456 /* MCIMAPRenameFolderOperation.cc in Sources */,
C64EA80516A2997E00778456 /* MCIMAPDeleteFolderOperation.cc in Sources */,
C63D315C17C9155C00A4D993 /* MCIMAPIdentity.cc in Sources */,
- 84D73742199BF963005124E5 /* MCNNTPFetchArticlesOperation.cc in Sources */,
+ 84D73742199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.cc in Sources */,
C64EA80816A2999A00778456 /* MCIMAPCreateFolderOperation.cc in Sources */,
C64EA80B16A299B700778456 /* MCIMAPSubscribeFolderOperation.cc in Sources */,
84D7372C199BF66C005124E5 /* MCNNTPAsyncSession.cc in Sources */,
@@ -4079,6 +4121,7 @@
C63CD68116BDCDD400DB18F1 /* MCHTMLRenderer.cc in Sources */,
C63CD68216BDCDD400DB18F1 /* MCSizeFormatter.cc in Sources */,
C63CD68616BE148B00DB18F1 /* MCHTMLRendererCallback.cc in Sources */,
+ 84CFA98F19F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.cc in Sources */,
C63CD69116BE566E00DB18F1 /* MCHTMLCleaner.cc in Sources */,
C64BB22116E34DCB000DB34C /* MCIMAPSyncResult.cc in Sources */,
C64BB22B16E5C0A4000DB34C /* MCIMAPCapabilityOperation.cc in Sources */,
@@ -4145,6 +4188,7 @@
C6D6F954171E5CB8006F5B28 /* MCMD5.cc in Sources */,
C6D6F956171E5CB8006F5B28 /* MCNull.cc in Sources */,
C6D6F967171FCF9F006F5B28 /* MCJSONParser.cc in Sources */,
+ 84CFA98719F7159700FE35D2 /* MCNNTPFetchOverviewOperation.cc in Sources */,
84D73768199BFFFC005124E5 /* MCONNTPOperation.mm in Sources */,
C668E2C71735C8D500A2BB47 /* MCObjectMac.mm in Sources */,
C668E2CC1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm in Sources */,
@@ -4213,6 +4257,7 @@
C6BA2BA01705F4E6003F0E9E /* MCArray.cc in Sources */,
C6E665B61796500B0063F2CF /* MCZip.cc in Sources */,
84B639E417F279BB003B5BA2 /* MCSMTPNoopOperation.cc in Sources */,
+ 84CFA98419F7153B00FE35D2 /* MCONNTPFetchOverviewOperation.mm in Sources */,
C6BA2BA11705F4E6003F0E9E /* MCAssert.c in Sources */,
84D73794199C0511005124E5 /* MCONNTPGroupInfo.mm in Sources */,
C6BA2BA21705F4E6003F0E9E /* MCData.cc in Sources */,
@@ -4231,7 +4276,8 @@
C6BA2BAE1705F4E6003F0E9E /* MCIMAPFolder.cc in Sources */,
C6BA2BAF1705F4E6003F0E9E /* MCIMAPMessage.cc in Sources */,
C6BA2BB01705F4E6003F0E9E /* MCIMAPMessagePart.cc in Sources */,
- 84D73776199C00AB005124E5 /* MCONNTPFetchArticlesOperation.mm in Sources */,
+ 84D73776199C00AB005124E5 /* MCONNTPFetchAllArticlesOperation.mm in Sources */,
+ 84CFA99619F725CB00FE35D2 /* MCONNTPFetchServerTimeOperation.mm in Sources */,
C6BA2BB11705F4E6003F0E9E /* MCIMAPMultipart.cc in Sources */,
C6BA2BB21705F4E6003F0E9E /* MCIMAPNamespace.cc in Sources */,
C6BA2BB31705F4E6003F0E9E /* MCIMAPNamespaceItem.cc in Sources */,
@@ -4262,7 +4308,7 @@
C6BA2BC61705F4E6003F0E9E /* MCIMAPRenameFolderOperation.cc in Sources */,
C6BA2BC71705F4E6003F0E9E /* MCIMAPDeleteFolderOperation.cc in Sources */,
C63D315D17C9155C00A4D993 /* MCIMAPIdentity.cc in Sources */,
- 84D73743199BF963005124E5 /* MCNNTPFetchArticlesOperation.cc in Sources */,
+ 84D73743199BF963005124E5 /* MCNNTPFetchAllArticlesOperation.cc in Sources */,
C6BA2BC81705F4E6003F0E9E /* MCIMAPCreateFolderOperation.cc in Sources */,
C6BA2BC91705F4E6003F0E9E /* MCIMAPSubscribeFolderOperation.cc in Sources */,
84D7372D199BF66C005124E5 /* MCNNTPAsyncSession.cc in Sources */,
@@ -4311,6 +4357,7 @@
C6BA2BE81705F4E6003F0E9E /* MCDateFormatter.cc in Sources */,
C6BA2BE91705F4E6003F0E9E /* MCHTMLRenderer.cc in Sources */,
C6BA2BEA1705F4E6003F0E9E /* MCSizeFormatter.cc in Sources */,
+ 84CFA99019F724E500FE35D2 /* MCNNTPFetchServerTimeOperation.cc in Sources */,
C6BA2BEB1705F4E6003F0E9E /* MCHTMLRendererCallback.cc in Sources */,
C6BA2BEC1705F4E6003F0E9E /* MCHTMLCleaner.cc in Sources */,
C6BA2BED1705F4E6003F0E9E /* MCIMAPSyncResult.cc in Sources */,
@@ -4377,6 +4424,7 @@
C6D6F7FA171E595D006F5B28 /* MCJSON.cc in Sources */,
C6D6F955171E5CB8006F5B28 /* MCMD5.cc in Sources */,
C6D6F957171E5CB8006F5B28 /* MCNull.cc in Sources */,
+ 84CFA98819F7159700FE35D2 /* MCNNTPFetchOverviewOperation.cc in Sources */,
C6D6F968171FCF9F006F5B28 /* MCJSONParser.cc in Sources */,
84D73769199BFFFC005124E5 /* MCONNTPOperation.mm in Sources */,
C668E2C81735C8D500A2BB47 /* MCObjectMac.mm in Sources */,
@@ -4717,6 +4765,7 @@
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
+ COMBINE_HIDPI_IMAGES = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -4750,6 +4799,7 @@
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
+ COMBINE_HIDPI_IMAGES = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
diff --git a/build-mac/mailcore2.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/build-mac/mailcore2.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 00000000..fd851d4d
--- /dev/null
+++ b/build-mac/mailcore2.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:mailcore2.xcodeproj">
+ </FileRef>
+</Workspace>
diff --git a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/mailcore osx.xcscheme b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/mailcore osx.xcscheme
index dfa632fb..40362a48 100644
--- a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/mailcore osx.xcscheme
+++ b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/mailcore osx.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0510"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -39,6 +39,15 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "C6BD288C170BD71100A91AC1"
+ BuildableName = "MailCore.framework"
+ BlueprintName = "mailcore osx"
+ ReferencedContainer = "container:mailcore2.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
diff --git a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 ios.xcscheme b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 ios.xcscheme
index 308d9031..c0e8e223 100644
--- a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 ios.xcscheme
+++ b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 ios.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0510"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -39,6 +39,15 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "C6BA2B091705F4E6003F0E9E"
+ BuildableName = "libMailCore-ios.a"
+ BlueprintName = "static mailcore2 ios"
+ ReferencedContainer = "container:mailcore2.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
diff --git a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 osx.xcscheme b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 osx.xcscheme
index 0f03d9d8..3107b4a3 100644
--- a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 osx.xcscheme
+++ b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/static mailcore2 osx.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0510"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -39,6 +39,15 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "C64EA536169E772200778456"
+ BuildableName = "libMailCore.a"
+ BlueprintName = "static mailcore2 osx"
+ ReferencedContainer = "container:mailcore2.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
diff --git a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/test-ios.xcscheme b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/test-ios.xcscheme
index 197bb83a..4a32a752 100644
--- a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/test-ios.xcscheme
+++ b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/test-ios.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0510"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/tests.xcscheme b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/tests.xcscheme
index 2e6592c3..8dfc0654 100644
--- a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/tests.xcscheme
+++ b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/tests.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0510"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/unittest.xcscheme b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/unittest.xcscheme
index e90e0367..375e55bd 100644
--- a/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/unittest.xcscheme
+++ b/build-mac/mailcore2.xcodeproj/xcshareddata/xcschemes/unittest.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0600"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/src/async/nntp/MCAsyncNNTP.h b/src/async/nntp/MCAsyncNNTP.h
index 56509ff8..914cc754 100644
--- a/src/async/nntp/MCAsyncNNTP.h
+++ b/src/async/nntp/MCAsyncNNTP.h
@@ -14,8 +14,10 @@
#include <MailCore/MCNNTPOperation.h>
#include <MailCore/MCNNTPFetchHeaderOperation.h>
#include <MailCore/MCNNTPFetchArticleOperation.h>
-#include <MailCore/MCNNTPFetchArticlesOperation.h>
+#include <MailCore/MCNNTPFetchAllArticlesOperation.h>
#include <MailCore/MCNNTPListNewsgroupsOperation.h>
+#include <MailCore/MCNNTPFetchOverviewOperation.h>
+#include <MailCore/MCNNTPFetchServerTimeOperation.h>
#include <MailCore/MCNNTPOperationCallback.h>
#endif
diff --git a/src/async/nntp/MCNNTPAsyncSession.cc b/src/async/nntp/MCNNTPAsyncSession.cc
index 833bf4d5..a78a70b4 100644
--- a/src/async/nntp/MCNNTPAsyncSession.cc
+++ b/src/async/nntp/MCNNTPAsyncSession.cc
@@ -11,9 +11,11 @@
#include "MCNNTP.h"
#include "MCNNTPFetchHeaderOperation.h"
#include "MCNNTPFetchArticleOperation.h"
-#include "MCNNTPFetchArticlesOperation.h"
+#include "MCNNTPFetchAllArticlesOperation.h"
#include "MCNNTPListNewsgroupsOperation.h"
+#include "MCNNTPFetchOverviewOperation.h"
#include "MCNNTPCheckAccountOperation.h"
+#include "MCNNTPFetchServerTimeOperation.h"
#include "MCNNTPDisconnectOperation.h"
#include "MCOperationQueueCallback.h"
#include "MCConnectionLogger.h"
@@ -153,9 +155,9 @@ bool NNTPAsyncSession::isCheckCertificateEnabled()
return mSession->isCheckCertificateEnabled();
}
-MCNNTPFetchArticlesOperation * NNTPAsyncSession::fetchArticlesOperation(String * group)
+NNTPFetchAllArticlesOperation * NNTPAsyncSession::fetchAllArticlesOperation(String * group)
{
- MCNNTPFetchArticlesOperation * op = new MCNNTPFetchArticlesOperation();
+ NNTPFetchAllArticlesOperation * op = new NNTPFetchAllArticlesOperation();
op->setSession(this);
op->setGroupName(group);
op->autorelease();
@@ -182,6 +184,34 @@ NNTPFetchArticleOperation * NNTPAsyncSession::fetchArticleOperation(String * gro
return op;
}
+NNTPFetchArticleOperation * NNTPAsyncSession::fetchArticleByMessageIDOperation(String *groupName, String *messageID)
+{
+ NNTPFetchArticleOperation * op = new NNTPFetchArticleOperation();
+ op->setSession(this);
+ op->setGroupName(groupName);
+ op->setMessageID(messageID);
+ op->autorelease();
+ return op;
+}
+
+NNTPFetchOverviewOperation * NNTPAsyncSession::fetchOverviewOperationWithIndexes(String * groupName, IndexSet * indexes)
+{
+ NNTPFetchOverviewOperation * op = new NNTPFetchOverviewOperation();
+ op->setSession(this);
+ op->setGroupName(groupName);
+ op->setIndexes(indexes);
+ op->autorelease();
+ return op;
+}
+
+NNTPFetchServerTimeOperation * NNTPAsyncSession::fetchServerDateOperation()
+{
+ NNTPFetchServerTimeOperation * op = new NNTPFetchServerTimeOperation();
+ op->setSession(this);
+ op->autorelease();
+ return op;
+}
+
NNTPListNewsgroupsOperation * NNTPAsyncSession::listAllNewsgroupsOperation()
{
NNTPListNewsgroupsOperation * op = new NNTPListNewsgroupsOperation();
@@ -191,7 +221,7 @@ NNTPListNewsgroupsOperation * NNTPAsyncSession::listAllNewsgroupsOperation()
return op;
}
-NNTPListNewsgroupsOperation * NNTPAsyncSession::listSubscribedNewsgroupsOperation()
+NNTPListNewsgroupsOperation * NNTPAsyncSession::listDefaultNewsgroupsOperation()
{
NNTPListNewsgroupsOperation * op = new NNTPListNewsgroupsOperation();
op->setSession(this);
diff --git a/src/async/nntp/MCNNTPAsyncSession.h b/src/async/nntp/MCNNTPAsyncSession.h
index 66f0cc0d..d18ea119 100644
--- a/src/async/nntp/MCNNTPAsyncSession.h
+++ b/src/async/nntp/MCNNTPAsyncSession.h
@@ -12,8 +12,10 @@ namespace mailcore {
class NNTPSession;
class NNTPFetchHeaderOperation;
class NNTPFetchArticleOperation;
- class MCNNTPFetchArticlesOperation;
+ class NNTPFetchAllArticlesOperation;
+ class NNTPFetchOverviewOperation;
class NNTPListNewsgroupsOperation;
+ class NNTPFetchServerTimeOperation;
class NNTPOperationQueueCallback;
class NNTPConnectionLogger;
@@ -51,14 +53,19 @@ namespace mailcore {
virtual dispatch_queue_t dispatchQueue();
#endif
- virtual MCNNTPFetchArticlesOperation * fetchArticlesOperation(String * group);
+ virtual NNTPFetchAllArticlesOperation * fetchAllArticlesOperation(String * group);
virtual NNTPFetchHeaderOperation * fetchHeaderOperation(String * groupName, unsigned int index);
virtual NNTPFetchArticleOperation * fetchArticleOperation(String *groupName, unsigned int index);
+ virtual NNTPFetchArticleOperation * fetchArticleByMessageIDOperation(String * groupname, String * messageID);
+
+ virtual NNTPFetchOverviewOperation * fetchOverviewOperationWithIndexes(String * groupName, IndexSet * indexes);
+
+ virtual NNTPFetchServerTimeOperation * fetchServerDateOperation();
virtual NNTPListNewsgroupsOperation * listAllNewsgroupsOperation();
- virtual NNTPListNewsgroupsOperation * listSubscribedNewsgroupsOperation();
+ virtual NNTPListNewsgroupsOperation * listDefaultNewsgroupsOperation();
virtual NNTPOperation * disconnectOperation();
diff --git a/src/async/nntp/MCNNTPFetchArticlesOperation.cc b/src/async/nntp/MCNNTPFetchAllArticlesOperation.cc
index 39446f35..044e9e5e 100644
--- a/src/async/nntp/MCNNTPFetchArticlesOperation.cc
+++ b/src/async/nntp/MCNNTPFetchAllArticlesOperation.cc
@@ -1,49 +1,49 @@
//
-// MCMCNNTPFetchArticlesOperation.cpp
+// MCNNTPFetchAllArticlesOperation.cpp
// mailcore2
//
// Created by Robert Widmann on 8/13/14.
// Copyright (c) 2014 MailCore. All rights reserved.
//
-#include "MCNNTPFetchArticlesOperation.h"
+#include "MCNNTPFetchAllArticlesOperation.h"
#include "MCNNTPAsyncSession.h"
#include "MCNNTPSession.h"
using namespace mailcore;
-MCNNTPFetchArticlesOperation::MCNNTPFetchArticlesOperation()
+NNTPFetchAllArticlesOperation::NNTPFetchAllArticlesOperation()
{
mGroupName = NULL;
mArticles = NULL;
}
-MCNNTPFetchArticlesOperation::~MCNNTPFetchArticlesOperation()
+NNTPFetchAllArticlesOperation::~NNTPFetchAllArticlesOperation()
{
MC_SAFE_RELEASE(mGroupName);
MC_SAFE_RELEASE(mArticles);
}
-void MCNNTPFetchArticlesOperation::setGroupName(String * groupname)
+void NNTPFetchAllArticlesOperation::setGroupName(String * groupname)
{
MC_SAFE_REPLACE_COPY(String, mGroupName, groupname);
}
-String * MCNNTPFetchArticlesOperation::groupName()
+String * NNTPFetchAllArticlesOperation::groupName()
{
return mGroupName;
}
-IndexSet * MCNNTPFetchArticlesOperation::articles()
+IndexSet * NNTPFetchAllArticlesOperation::articles()
{
return mArticles;
}
-void MCNNTPFetchArticlesOperation::main()
+void NNTPFetchAllArticlesOperation::main()
{
ErrorCode error;
- mArticles = session()->session()->fetchArticles(mGroupName, &error);
+ mArticles = session()->session()->fetchAllArticles(mGroupName, &error);
setError(error);
MC_SAFE_RETAIN(mArticles);
}
diff --git a/src/async/nntp/MCNNTPFetchArticlesOperation.h b/src/async/nntp/MCNNTPFetchAllArticlesOperation.h
index fa0037c8..88395dee 100644
--- a/src/async/nntp/MCNNTPFetchArticlesOperation.h
+++ b/src/async/nntp/MCNNTPFetchAllArticlesOperation.h
@@ -1,5 +1,5 @@
//
-// MCMCNNTPFetchArticlesOperation.h
+// MCNNTPFetchAllArticlesOperation.h
// mailcore2
//
// Created by Robert Widmann on 8/13/14.
@@ -16,10 +16,10 @@
namespace mailcore {
- class MCNNTPFetchArticlesOperation : public NNTPOperation {
+ class NNTPFetchAllArticlesOperation : public NNTPOperation {
public:
- MCNNTPFetchArticlesOperation();
- virtual ~MCNNTPFetchArticlesOperation();
+ NNTPFetchAllArticlesOperation();
+ virtual ~NNTPFetchAllArticlesOperation();
virtual void setGroupName(String * groupName);
virtual String * groupName();
diff --git a/src/async/nntp/MCNNTPFetchArticleOperation.cc b/src/async/nntp/MCNNTPFetchArticleOperation.cc
index a12f346f..1df0dc33 100644
--- a/src/async/nntp/MCNNTPFetchArticleOperation.cc
+++ b/src/async/nntp/MCNNTPFetchArticleOperation.cc
@@ -1,5 +1,5 @@
//
-// MCMCNNTPFetchArticlesOperation.cpp
+// MCNNTPFetchArticleOperation.cpp
// mailcore2
//
// Created by Robert Widmann on 8/13/14.
@@ -32,6 +32,14 @@ String * NNTPFetchArticleOperation::groupName() {
return mGroupName;
}
+void NNTPFetchArticleOperation::setMessageID(String * groupName) {
+ MC_SAFE_REPLACE_COPY(String, mMessageID, groupName);
+}
+
+String * NNTPFetchArticleOperation::messageID() {
+ return mMessageID;
+}
+
void NNTPFetchArticleOperation::setMessageIndex(unsigned int messageIndex)
{
mMessageIndex = messageIndex;
@@ -50,7 +58,11 @@ Data * NNTPFetchArticleOperation::data()
void NNTPFetchArticleOperation::main()
{
ErrorCode error;
- mData = session()->session()->fetchArticle(mGroupName, mMessageIndex, this, &error);
+ if (mMessageID == NULL) {
+ mData = session()->session()->fetchArticle(mGroupName, mMessageIndex, this, &error);
+ } else {
+ mData = session()->session()->fetchArticleByMessageID(mGroupName, mMessageID, &error);
+ }
MC_SAFE_RETAIN(mData);
setError(error);
}
diff --git a/src/async/nntp/MCNNTPFetchArticleOperation.h b/src/async/nntp/MCNNTPFetchArticleOperation.h
index 4f607c4f..7b11ae16 100644
--- a/src/async/nntp/MCNNTPFetchArticleOperation.h
+++ b/src/async/nntp/MCNNTPFetchArticleOperation.h
@@ -1,5 +1,5 @@
//
-// MCMCNNTPFetchArticlesOperation.h
+// MCNNTPFetchArticleOperation.h
// mailcore2
//
// Created by Robert Widmann on 8/13/14.
@@ -23,6 +23,9 @@ namespace mailcore {
virtual void setGroupName(String * groupName);
virtual String * groupName();
+ virtual void setMessageID(String * groupName);
+ virtual String * messageID();
+
virtual void setMessageIndex(unsigned int messageIndex);
virtual unsigned int messageIndex();
@@ -33,6 +36,7 @@ namespace mailcore {
private:
String * mGroupName;
+ String * mMessageID;
unsigned int mMessageIndex;
Data * mData;
diff --git a/src/async/nntp/MCNNTPFetchOverviewOperation.cc b/src/async/nntp/MCNNTPFetchOverviewOperation.cc
new file mode 100644
index 00000000..b05b29e6
--- /dev/null
+++ b/src/async/nntp/MCNNTPFetchOverviewOperation.cc
@@ -0,0 +1,68 @@
+//
+// NNTPFetchOverviewOperation.cpp
+// mailcore2
+//
+// Created by Robert Widmann on 10/21/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#include "MCNNTPFetchOverviewOperation.h"
+
+#include "MCNNTPAsyncSession.h"
+#include "MCNNTPSession.h"
+
+using namespace mailcore;
+
+NNTPFetchOverviewOperation::NNTPFetchOverviewOperation()
+{
+ mArticles = NULL;
+ mIndexes = NULL;
+ mGroupName = NULL;
+}
+
+NNTPFetchOverviewOperation::~NNTPFetchOverviewOperation()
+{
+ MC_SAFE_RELEASE(mIndexes);
+ MC_SAFE_RELEASE(mGroupName);
+}
+
+void NNTPFetchOverviewOperation::setIndexes(IndexSet * indexes)
+{
+ MC_SAFE_REPLACE_RETAIN(IndexSet, mIndexes, indexes);
+}
+
+IndexSet * NNTPFetchOverviewOperation::indexes()
+{
+ return mIndexes;
+}
+
+void NNTPFetchOverviewOperation::setGroupName(String * groupname)
+{
+ MC_SAFE_REPLACE_COPY(String, mGroupName, groupname);
+}
+
+String * NNTPFetchOverviewOperation::groupName()
+{
+ return mGroupName;
+}
+
+Array * NNTPFetchOverviewOperation::articles() {
+ return mArticles;
+}
+
+void NNTPFetchOverviewOperation::main()
+{
+ ErrorCode error;
+ mArticles = Array::array();
+ for(unsigned int i = 0 ; i < mIndexes->rangesCount() ; i ++) {
+ Range range = mIndexes->allRanges()[i];
+ Array * articles = session()->session()->fetchOverArticlesInRange(range, mGroupName, &error);
+ if (error != ErrorNone) {
+ setError(error);
+ return;
+ }
+ mArticles->addObjectsFromArray(articles);
+ }
+
+ setError(error);
+}
diff --git a/src/async/nntp/MCNNTPFetchOverviewOperation.h b/src/async/nntp/MCNNTPFetchOverviewOperation.h
new file mode 100644
index 00000000..aab8d24b
--- /dev/null
+++ b/src/async/nntp/MCNNTPFetchOverviewOperation.h
@@ -0,0 +1,45 @@
+//
+// NNTPFetchOverviewOperation.h
+// mailcore2
+//
+// Created by Robert Widmann on 10/21/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#ifndef MAILCORE_MCNNTPFETCHOVERVIEWOPERATION_H
+
+#define MAILCORE_MCNNTPFETCHOVERVIEWOPERATION_H
+
+#include <MailCore/MCNNTPOperation.h>
+
+#ifdef __cplusplus
+
+namespace mailcore {
+
+ class NNTPFetchOverviewOperation : public NNTPOperation {
+ public:
+ NNTPFetchOverviewOperation();
+ virtual ~NNTPFetchOverviewOperation();
+
+ virtual void setIndexes(IndexSet * indexes);
+ virtual IndexSet * indexes();
+
+ virtual void setGroupName(String * groupName);
+ virtual String * groupName();
+
+ virtual Array * articles();
+
+ public: // subclass behavior
+ virtual void main();
+
+ private:
+ IndexSet * mIndexes;
+ String * mGroupName;
+ Array * /* MessageHeader */ mArticles;
+ };
+
+}
+
+#endif
+
+#endif
diff --git a/src/async/nntp/MCNNTPFetchServerTimeOperation.cc b/src/async/nntp/MCNNTPFetchServerTimeOperation.cc
new file mode 100644
index 00000000..86800733
--- /dev/null
+++ b/src/async/nntp/MCNNTPFetchServerTimeOperation.cc
@@ -0,0 +1,34 @@
+//
+// MCNNTPFetchServerTimeOperation.cpp
+// mailcore2
+//
+// Created by Robert Widmann on 10/21/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#include "MCNNTPFetchServerTimeOperation.h"
+
+#include "MCNNTPAsyncSession.h"
+#include "MCNNTPSession.h"
+
+using namespace mailcore;
+
+NNTPFetchServerTimeOperation::NNTPFetchServerTimeOperation()
+{
+}
+
+NNTPFetchServerTimeOperation::~NNTPFetchServerTimeOperation()
+{
+}
+
+time_t NNTPFetchServerTimeOperation::time()
+{
+ return mTime;
+}
+
+void NNTPFetchServerTimeOperation::main()
+{
+ ErrorCode error;
+ mTime = session()->session()->fetchServerDate(&error);
+ setError(error);
+}
diff --git a/src/async/nntp/MCNNTPFetchServerTimeOperation.h b/src/async/nntp/MCNNTPFetchServerTimeOperation.h
new file mode 100644
index 00000000..22cebf25
--- /dev/null
+++ b/src/async/nntp/MCNNTPFetchServerTimeOperation.h
@@ -0,0 +1,37 @@
+//
+// MCNNTPFetchServerTimeOperation.h
+// mailcore2
+//
+// Created by Robert Widmann on 10/21/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#ifndef MAILCORE_MCNNTPFETCHSERVERTIMEOPERATION_H
+
+#define MAILCORE_MCNNTPFETCHSERVERTIMEOPERATION_H
+
+#include <MailCore/MCNNTPOperation.h>
+
+#ifdef __cplusplus
+
+namespace mailcore {
+
+ class NNTPFetchServerTimeOperation : public NNTPOperation {
+ public:
+ NNTPFetchServerTimeOperation();
+ virtual ~NNTPFetchServerTimeOperation();
+
+ virtual time_t time();
+
+ public: // subclass behavior
+ virtual void main();
+
+ private:
+ time_t mTime;
+ };
+
+}
+
+#endif
+
+#endif
diff --git a/src/async/nntp/MCNNTPListNewsgroupsOperation.cc b/src/async/nntp/MCNNTPListNewsgroupsOperation.cc
index 253b38d0..3747bacf 100644
--- a/src/async/nntp/MCNNTPListNewsgroupsOperation.cc
+++ b/src/async/nntp/MCNNTPListNewsgroupsOperation.cc
@@ -40,7 +40,7 @@ void NNTPListNewsgroupsOperation::main()
ErrorCode error;
if (mListsSuscribed) {
- mGroups = session()->session()->listSubscribedNewsgroups(&error);
+ mGroups = session()->session()->listDefaultNewsgroups(&error);
} else {
mGroups = session()->session()->listAllNewsgroups(&error);
}
diff --git a/src/cmake/async.cmake b/src/cmake/async.cmake
index e38bffe2..58f410d4 100644
--- a/src/cmake/async.cmake
+++ b/src/cmake/async.cmake
@@ -57,9 +57,11 @@ set(async_nntp_files
async/nntp/MCNNTPCheckAccountOperation.cc
async/nntp/MCNNTPDisconnectOperation.cc
async/nntp/MCNNTPFetchArticleOperation.cc
- async/nntp/MCNNTPFetchArticlesOperation.cc
+ async/nntp/MCNNTPFetchAllArticlesOperation.cc
async/nntp/MCNNTPFetchHeaderOperation.cc
async/nntp/MCNNTPListNewsgroupsOperation.cc
+ async/nntp/MCNNTPFetchOverviewOperation.cc
+ async/nntp/MCNNTPFetchServerTimeOperation.cc
async/nntp/MCNNTPOperation.cc
)
diff --git a/src/cmake/objc.cmake b/src/cmake/objc.cmake
index af1cfcf5..de4d8d06 100644
--- a/src/cmake/objc.cmake
+++ b/src/cmake/objc.cmake
@@ -77,10 +77,12 @@ set(objc_smtp_files
set(objc_nntp_files
objc/nntp/MCONNTPDisconnectOperation.mm
objc/nntp/MCONNTPFetchArticleOperation.mm
- objc/nntp/MCONNTPFetchArticlesOperation.mm
+ objc/nntp/MCONNTPFetchAllArticlesOperation.mm
objc/nntp/MCONNTPFetchHeaderOperation.mm
objc/nntp/MCONNTPGroupInfo.mm
objc/nntp/MCONNTPListNewsgroupsOperation.mm
+ objc/nntp/MCONNTPFetchOverviewOperation.mm
+ objc/nntp/MCONNTPFetchServerTimeOperation.mm
objc/nntp/MCONNTPOperation.mm
objc/nntp/MCONNTPSession.mm
)
diff --git a/src/cmake/public-headers.cmake b/src/cmake/public-headers.cmake
index 705fbc66..8b55c15e 100644
--- a/src/cmake/public-headers.cmake
+++ b/src/cmake/public-headers.cmake
@@ -108,11 +108,13 @@ async/nntp/MCNNTPAsyncSession.h
async/nntp/MCNNTPCheckAccountOperation.h
async/nntp/MCNNTPDisconnectOperation.h
async/nntp/MCNNTPFetchArticleOperation.h
-async/nntp/MCNNTPFetchArticlesOperation.h
+async/nntp/MCNNTPFetchAllArticlesOperation.h
async/nntp/MCNNTPFetchHeaderOperation.h
async/nntp/MCNNTPListNewsgroupsOperation.h
+async/nntp/MCNNTPFetchOverviewOperation.h
async/nntp/MCNNTPOperation.h
async/nntp/MCNNTPOperationCallback.h
+async/nntp/MCNNTPFetchServerTimeOperation.h
objc/MCObjC.h
objc/utils/MCOUtils.h
objc/utils/MCOObjectWrapper.h
@@ -186,13 +188,12 @@ objc/smtp/MCOSMTPOperation.h
objc/nntp/MCONNTP.h
objc/nntp/MCONNTPDisconnectOperation.h
objc/nntp/MCONNTPFetchArticleOperation.h
-objc/nntp/MCONNTPFetchArticleOperation.mm
-objc/nntp/MCONNTPFetchArticlesOperation.h
-objc/nntp/MCONNTPFetchArticlesOperation.mm
+objc/nntp/MCONNTPFetchAllArticlesOperation.h
objc/nntp/MCONNTPFetchHeaderOperation.h
-objc/nntp/MCONNTPFetchHeaderOperation.mm
objc/nntp/MCONNTPGroupInfo.h
objc/nntp/MCONNTPListNewsgroupsOperation.h
+objc/nntp/MCONNTPFetchOverviewOperation.h
+objc/nntp/MCONNTPFetchServerTimeOperation.h
objc/nntp/MCONNTPOperation.h
objc/nntp/MCONNTPSession.h
objc/provider/MCOProvider.h
diff --git a/src/core/abstract/MCMessageConstants.h b/src/core/abstract/MCMessageConstants.h
index c81f8360..1b45ea69 100644
--- a/src/core/abstract/MCMessageConstants.h
+++ b/src/core/abstract/MCMessageConstants.h
@@ -249,6 +249,7 @@ namespace mailcore {
ErrorNoRecipient,
ErrorNoop,
ErrorGmailApplicationSpecificPasswordRequired,
+ ErrorServerDate,
};
enum PartType {
diff --git a/src/core/nntp/MCNNTPSession.cc b/src/core/nntp/MCNNTPSession.cc
index 02db197e..3c7ea7a3 100644
--- a/src/core/nntp/MCNNTPSession.cc
+++ b/src/core/nntp/MCNNTPSession.cc
@@ -21,6 +21,8 @@
using namespace mailcore;
+static int xover_resp_to_fields(struct newsnntp_xover_resp_item * item, struct mailimf_fields ** result);
+
enum {
STATE_DISCONNECTED,
STATE_CONNECTED,
@@ -359,16 +361,17 @@ Array * NNTPSession::listAllNewsgroups(ErrorCode * pError)
return result;
}
-Array * NNTPSession::listSubscribedNewsgroups(ErrorCode * pError)
+Array * NNTPSession::listDefaultNewsgroups(ErrorCode * pError)
{
int r;
clist * subd_groups;
MCLog("fetch subscribed");
loginIfNeeded(pError);
- if (* pError != ErrorNone)
+ if (* pError != ErrorNone) {
return NULL;
-
+ }
+
r = newsnntp_list_subscriptions(mNNTP, &subd_groups);
MCLog("fetch subscribed %u", r);
@@ -390,10 +393,11 @@ Array * NNTPSession::listSubscribedNewsgroups(ErrorCode * pError)
}
newsnntp_list_subscriptions_free(subd_groups);
* pError = ErrorNone;
-
+
return result;
}
+
MessageHeader * NNTPSession::fetchHeader(String *groupName, unsigned int index, ErrorCode * pError)
{
int r;
@@ -401,10 +405,6 @@ MessageHeader * NNTPSession::fetchHeader(String *groupName, unsigned int index,
size_t content_len;
MCLog("fetch header at index %u", index);
- loginIfNeeded(pError);
- if (* pError != ErrorNone) {
- return NULL;
- }
selectGroup(groupName, pError);
if (* pError != ErrorNone) {
@@ -438,17 +438,46 @@ Data * NNTPSession::fetchArticle(String *groupName, unsigned int index, NNTPProg
MCLog("fetch article at index %u", index);
- loginIfNeeded(pError);
+ selectGroup(groupName, pError);
if (* pError != ErrorNone) {
return NULL;
}
+ r = newsnntp_article(mNNTP, index, &content, &content_len);
+ if (r == NEWSNNTP_ERROR_STREAM) {
+ * pError = ErrorConnection;
+ return NULL;
+ }
+ else if (r != NEWSNNTP_NO_ERROR) {
+ * pError = ErrorFetchMessageList;
+ return NULL;
+ }
+
+ Data * result;
+ result = Data::dataWithBytes(content, (unsigned int) content_len);
+ newsnntp_article_free(content);
+ * pError = ErrorNone;
+
+ return result;
+}
+
+Data * NNTPSession::fetchArticleByMessageID(String * groupName, String * messageID, ErrorCode * pError)
+{
+ int r;
+ char * msgID;
+ char * content;
+ size_t content_len;
+
+ MCLog("fetch article at message-id %s", messageID->UTF8Characters());
+
selectGroup(groupName, pError);
if (* pError != ErrorNone) {
return NULL;
}
- r = newsnntp_article(mNNTP, index, &content, &content_len);
+ msgID = strdup(messageID->UTF8Characters());
+
+ r = newsnntp_article_by_message_id(mNNTP, msgID, &content, &content_len);
if (r == NEWSNNTP_ERROR_STREAM) {
* pError = ErrorConnection;
return NULL;
@@ -466,7 +495,34 @@ Data * NNTPSession::fetchArticle(String *groupName, unsigned int index, NNTPProg
return result;
}
-IndexSet * NNTPSession::fetchArticles(String * groupName, ErrorCode * pError)
+time_t NNTPSession::fetchServerDate(ErrorCode * pError) {
+ int r;
+ struct tm time;
+ time_t result;
+
+ loginIfNeeded(pError);
+ if (* pError != ErrorNone) {
+ return NULL;
+ }
+
+ r = newsnntp_date(mNNTP, &time);
+
+ if (r == NEWSNNTP_ERROR_STREAM) {
+ * pError = ErrorConnection;
+ return NULL;
+ }
+ else if (r != NEWSNNTP_NO_ERROR) {
+ * pError = ErrorServerDate;
+ return NULL;
+ }
+
+ result = timegm(&time);
+ * pError = ErrorNone;
+
+ return result;
+}
+
+IndexSet * NNTPSession::fetchAllArticles(String * groupName, ErrorCode * pError)
{
int r;
clist * msg_list;
@@ -506,11 +562,61 @@ IndexSet * NNTPSession::fetchArticles(String * groupName, ErrorCode * pError)
return result;
}
+Array * NNTPSession::fetchOverArticlesInRange(Range range, String * groupName, ErrorCode * pError)
+{
+ int r;
+ clist * msg_list;
+
+ selectGroup(groupName, pError);
+ if (* pError != ErrorNone) {
+ return NULL;
+ }
+ r = newsnntp_xover_range(mNNTP, (uint32_t) range.location, (uint32_t) (range.location + range.length), &msg_list);
+ if (r == NEWSNNTP_ERROR_STREAM) {
+ * pError = ErrorConnection;
+ return NULL;
+ }
+ else if (r != NEWSNNTP_NO_ERROR) {
+ * pError = ErrorFetchMessageList;
+ return NULL;
+ }
+
+ Array * result = Array::array();
+ clistiter * iter;
+ for(iter = clist_begin(msg_list) ;iter != NULL ; iter = clist_next(iter)) {
+ struct newsnntp_xover_resp_item * item;
+ struct mailimf_fields * fields = NULL;
+
+ item = (struct newsnntp_xover_resp_item *) clist_content(iter);
+ if (!item) {
+ continue;
+ }
+
+ r = xover_resp_to_fields(item, &fields);
+ if (r == MAIL_NO_ERROR) {
+ MessageHeader * header = new MessageHeader();
+ header->importIMFFields(fields);
+ result->addObject(header);
+ header->release();
+ }
+ }
+
+ newsnntp_xover_resp_list_free(msg_list);
+ * pError = ErrorNone;
+
+ return result;
+}
+
void NNTPSession::selectGroup(String * folder, ErrorCode * pError)
{
int r;
struct newsnntp_group_info * info;
+ loginIfNeeded(pError);
+ if (* pError != ErrorNone) {
+ return;
+ }
+
readerIfNeeded(pError);
if (* pError != ErrorNone) {
return;
@@ -545,3 +651,241 @@ ConnectionLogger * NNTPSession::connectionLogger()
{
return mConnectionLogger;
}
+
+// Taken from nntp/nntpdriver.c
+static int xover_resp_to_fields(struct newsnntp_xover_resp_item * item, struct mailimf_fields ** result)
+{
+ size_t cur_token;
+ clist * list;
+ struct mailimf_fields * fields;
+ int r;
+
+ list = clist_new();
+ if (list == NULL) {
+ r = MAIL_ERROR_MEMORY;
+ goto err;
+ }
+
+ if (item->ovr_subject != NULL) {
+ char * subject_str;
+ struct mailimf_subject * subject;
+ struct mailimf_field * field;
+
+ subject_str = strdup(item->ovr_subject);
+ if (subject_str == NULL) {
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ subject = mailimf_subject_new(subject_str);
+ if (subject == NULL) {
+ free(subject_str);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ field = mailimf_field_new(MAILIMF_FIELD_SUBJECT,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, subject, NULL, NULL, NULL);
+ if (field == NULL) {
+ mailimf_subject_free(subject);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ r = clist_append(list, field);
+ if (r < 0) {
+ mailimf_field_free(field);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+ }
+
+ if (item->ovr_author != NULL) {
+ struct mailimf_mailbox_list * mb_list;
+ struct mailimf_from * from;
+ struct mailimf_field * field;
+
+ cur_token = 0;
+ r = mailimf_mailbox_list_parse(item->ovr_author, strlen(item->ovr_author),
+ &cur_token, &mb_list);
+ switch (r) {
+ case MAILIMF_NO_ERROR:
+ from = mailimf_from_new(mb_list);
+ if (from == NULL) {
+ mailimf_mailbox_list_free(mb_list);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ field = mailimf_field_new(MAILIMF_FIELD_FROM,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, from,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL);
+ if (field == NULL) {
+ mailimf_from_free(from);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ r = clist_append(list, field);
+ if (r < 0) {
+ mailimf_field_free(field);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+ break;
+
+ case MAILIMF_ERROR_PARSE:
+ break;
+
+ default:
+ goto free_list;
+ }
+ }
+
+ if (item->ovr_date != NULL) {
+ struct mailimf_date_time * date_time;
+ struct mailimf_orig_date * orig_date;
+ struct mailimf_field * field;
+
+ cur_token = 0;
+ r = mailimf_date_time_parse(item->ovr_date, strlen(item->ovr_date),
+ &cur_token, &date_time);
+ switch (r) {
+ case MAILIMF_NO_ERROR:
+ orig_date = mailimf_orig_date_new(date_time);
+ if (orig_date == NULL) {
+ mailimf_date_time_free(date_time);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ field = mailimf_field_new(MAILIMF_FIELD_ORIG_DATE,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, orig_date, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL);
+ if (field == NULL) {
+ mailimf_orig_date_free(orig_date);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ r = clist_append(list, field);
+ if (r < 0) {
+ mailimf_field_free(field);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+ break;
+
+ case MAILIMF_ERROR_PARSE:
+ break;
+
+ default:
+ goto free_list;
+ }
+ }
+
+ if (item->ovr_message_id != NULL) {
+ char * msgid_str;
+ struct mailimf_message_id * msgid;
+ struct mailimf_field * field;
+
+ cur_token = 0;
+ r = mailimf_msg_id_parse(item->ovr_message_id, strlen(item->ovr_message_id),
+ &cur_token, &msgid_str);
+
+ switch (r) {
+ case MAILIMF_NO_ERROR:
+ msgid = mailimf_message_id_new(msgid_str);
+ if (msgid == NULL) {
+ mailimf_msg_id_free(msgid_str);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ field = mailimf_field_new(MAILIMF_FIELD_MESSAGE_ID,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, msgid, NULL,
+ NULL, NULL, NULL, NULL, NULL);
+
+ r = clist_append(list, field);
+ if (r < 0) {
+ mailimf_field_free(field);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+ break;
+
+ case MAILIMF_ERROR_PARSE:
+ break;
+
+ default:
+ goto free_list;
+ }
+ }
+
+ if (item->ovr_references != NULL) {
+ clist * msgid_list;
+ struct mailimf_references * references;
+ struct mailimf_field * field;
+
+ cur_token = 0;
+
+ r = mailimf_msg_id_list_parse(item->ovr_references, strlen(item->ovr_references),
+ &cur_token, &msgid_list);
+
+ switch (r) {
+ case MAILIMF_NO_ERROR:
+ references = mailimf_references_new(msgid_list);
+ if (references == NULL) {
+ clist_foreach(msgid_list,
+ (clist_func) mailimf_msg_id_free, NULL);
+ clist_free(msgid_list);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ field = mailimf_field_new(MAILIMF_FIELD_REFERENCES,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ references, NULL, NULL, NULL, NULL);
+
+ r = clist_append(list, field);
+ if (r < 0) {
+ mailimf_field_free(field);
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ case MAILIMF_ERROR_PARSE:
+ break;
+
+ default:
+ goto free_list;
+ }
+ }
+
+ fields = mailimf_fields_new(list);
+ if (fields == NULL) {
+ r = MAIL_ERROR_MEMORY;
+ goto free_list;
+ }
+
+ * result = fields;
+
+ return MAIL_NO_ERROR;
+
+free_list:
+ clist_foreach(list, (clist_func) mailimf_field_free, NULL);
+ clist_free(list);
+err:
+ return r;
+}
diff --git a/src/core/nntp/MCNNTPSession.h b/src/core/nntp/MCNNTPSession.h
index a6fb511c..d410fdcf 100644
--- a/src/core/nntp/MCNNTPSession.h
+++ b/src/core/nntp/MCNNTPSession.h
@@ -45,13 +45,17 @@ namespace mailcore {
virtual void checkAccount(ErrorCode * pError);
virtual Array * /* NNTPGroupInfo */ listAllNewsgroups(ErrorCode * pError);
- virtual Array * listSubscribedNewsgroups(ErrorCode * pError);
+ virtual Array * /* NNTPGroupInfo */ listDefaultNewsgroups(ErrorCode * pError);
- virtual MessageHeader * fetchHeader(String *groupName, unsigned int index, ErrorCode * pError);
-
- virtual IndexSet * fetchArticles(String * groupname, ErrorCode * pError);
+ virtual MessageHeader * fetchHeader(String * groupName, unsigned int index, ErrorCode * pError);
+ virtual Array /*MessageHeader*/ * fetchOverArticlesInRange(Range range, String * groupname, ErrorCode * pError);
+
+ virtual IndexSet * fetchAllArticles(String * groupname, ErrorCode * pError);
+
+ virtual Data * fetchArticle(String *groupName, unsigned int index, NNTPProgressCallback * callback, ErrorCode * pError);
+ virtual Data * fetchArticleByMessageID(String * groupname, String * messageID, ErrorCode * pError);
- Data * fetchArticle(String *groupName, unsigned int index, NNTPProgressCallback * callback, ErrorCode * pError);
+ virtual time_t fetchServerDate(ErrorCode * pError);
virtual void setConnectionLogger(ConnectionLogger * logger);
virtual ConnectionLogger * connectionLogger();
diff --git a/src/objc/nntp/MCONNTP.h b/src/objc/nntp/MCONNTP.h
index 980d0c39..71979dfa 100644
--- a/src/objc/nntp/MCONNTP.h
+++ b/src/objc/nntp/MCONNTP.h
@@ -14,8 +14,10 @@
#include <MailCore/MCONNTPOperation.h>
#include <MailCore/MCONNTPFetchHeaderOperation.h>
#include <MailCore/MCONNTPFetchArticleOperation.h>
-#include <MailCore/MCONNTPFetchArticlesOperation.h>
+#include <MailCore/MCONNTPFetchAllArticlesOperation.h>
#include <MailCore/MCONNTPListNewsgroupsOperation.h>
+#include <MailCore/MCONNTPFetchOverviewOperation.h>
+#include <MailCore/MCONNTPFetchServerTimeOperation.h>
#include <MailCore/MCONNTPGroupInfo.h>
#endif
diff --git a/src/objc/nntp/MCONNTPFetchArticlesOperation.h b/src/objc/nntp/MCONNTPFetchAllArticlesOperation.h
index 35a0889d..34ccee7e 100644
--- a/src/objc/nntp/MCONNTPFetchArticlesOperation.h
+++ b/src/objc/nntp/MCONNTPFetchAllArticlesOperation.h
@@ -1,5 +1,5 @@
//
-// MCONNTPFetchArticlesOperation.h
+// MCONNTPFetchAllArticlesOperation.h
// mailcore2
//
// Created by Robert Widmann on 8/13/14.
@@ -16,7 +16,7 @@
@class MCOIndexSet;
/** This is an asynchronous operation that will fetch the list of a messages on the NNTP server. */
-@interface MCONNTPFetchArticlesOperation : MCONNTPOperation
+@interface MCONNTPFetchAllArticlesOperation : MCONNTPOperation
/**
Starts the asynchronous fetch operation.
diff --git a/src/objc/nntp/MCONNTPFetchArticlesOperation.mm b/src/objc/nntp/MCONNTPFetchAllArticlesOperation.mm
index 6e13a5d2..947f0324 100644
--- a/src/objc/nntp/MCONNTPFetchArticlesOperation.mm
+++ b/src/objc/nntp/MCONNTPFetchAllArticlesOperation.mm
@@ -1,12 +1,12 @@
//
-// MCONNTPFetchArticlesOperation.m
+// MCONNTPFetchAllArticlesOperation.m
// mailcore2
//
// Created by Robert Widmann on 8/13/14.
// Copyright (c) 2014 MailCore. All rights reserved.
//
-#import "MCONNTPFetchArticlesOperation.h"
+#import "MCONNTPFetchAllArticlesOperation.h"
#include "MCAsyncNNTP.h"
@@ -15,11 +15,11 @@
typedef void (^CompletionType)(NSError *error, MCOIndexSet * articles);
-@implementation MCONNTPFetchArticlesOperation {
+@implementation MCONNTPFetchAllArticlesOperation {
CompletionType _completionBlock;
}
-#define nativeType mailcore::MCNNTPFetchArticlesOperation
+#define nativeType mailcore::NNTPFetchAllArticlesOperation
+ (void) load
{
diff --git a/src/objc/nntp/MCONNTPFetchOverviewOperation.h b/src/objc/nntp/MCONNTPFetchOverviewOperation.h
new file mode 100644
index 00000000..d63668e8
--- /dev/null
+++ b/src/objc/nntp/MCONNTPFetchOverviewOperation.h
@@ -0,0 +1,32 @@
+//
+// MCONNTPFetchOverviewOperation.h
+// mailcore2
+//
+// Created by Robert Widmann on 10/21/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#ifndef MAILCORE_MCONNTPFETCHOVERVIEWOPERATION_H
+
+#define MAILCORE_MCONNTPFETCHOVERVIEWOPERATION_H
+
+#import <Foundation/Foundation.h>
+#import <MailCore/MCONNTPOperation.h>
+
+@interface MCONNTPFetchOverviewOperation : MCONNTPOperation
+
+/**
+ Starts the asynchronous fetch operation.
+
+ @param completionBlock Called when the operation is finished.
+
+ - On success `error` will be nil and `messages` will be an array of MCOMessageHeaders
+
+ - On failure, `error` will be set with `MCOErrorDomain` as domain and an
+ error code available in MCOConstants.h, `messages` will be null
+ */
+- (void) start:(void (^)(NSError * error, NSArray * /* MCOMessageHeader */ messages))completionBlock;
+
+@end
+
+#endif
diff --git a/src/objc/nntp/MCONNTPFetchOverviewOperation.mm b/src/objc/nntp/MCONNTPFetchOverviewOperation.mm
new file mode 100644
index 00000000..60bf2161
--- /dev/null
+++ b/src/objc/nntp/MCONNTPFetchOverviewOperation.mm
@@ -0,0 +1,69 @@
+//
+// MCONNTPFetchOverviewOperation.m
+// mailcore2
+//
+// Created by Robert Widmann on 10/21/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#import "MCONNTPFetchOverviewOperation.h"
+
+#include "MCAsyncNNTP.h"
+
+#import "MCOUtils.h"
+#import "MCOOperation+Private.h"
+
+typedef void (^CompletionType)(NSError *error, NSArray * groups);
+
+@implementation MCONNTPFetchOverviewOperation {
+ CompletionType _completionBlock;
+}
+
+#define nativeType mailcore::NNTPFetchOverviewOperation
+
++ (void) load
+{
+ MCORegisterClass(self, &typeid(nativeType));
+}
+
++ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object
+{
+ nativeType * op = (nativeType *) object;
+ return [[[self alloc] initWithMCOperation:op] autorelease];
+}
+
+- (void) dealloc
+{
+ [_completionBlock release];
+ [super dealloc];
+}
+
+- (void) start:(void (^)(NSError *error, NSArray * groups))completionBlock
+{
+ _completionBlock = [completionBlock copy];
+ [self start];
+}
+
+- (void) cancel
+{
+ [_completionBlock release];
+ _completionBlock = nil;
+ [super cancel];
+}
+
+- (void) operationCompleted
+{
+ if (_completionBlock == NULL)
+ return;
+
+ nativeType *op = MCO_NATIVE_INSTANCE;
+ if (op->error() == mailcore::ErrorNone) {
+ _completionBlock(nil, MCO_TO_OBJC(op->articles()));
+ } else {
+ _completionBlock([NSError mco_errorWithErrorCode:op->error()], nil);
+ }
+ [_completionBlock release];
+ _completionBlock = nil;
+}
+
+@end \ No newline at end of file
diff --git a/src/objc/nntp/MCONNTPFetchServerTimeOperation.h b/src/objc/nntp/MCONNTPFetchServerTimeOperation.h
new file mode 100644
index 00000000..a06dd746
--- /dev/null
+++ b/src/objc/nntp/MCONNTPFetchServerTimeOperation.h
@@ -0,0 +1,35 @@
+//
+// MCONNTPFetchServerTimeOperation.h
+// mailcore2
+//
+// Created by Robert Widmann on 10/21/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#ifndef MAILCORE_MCONNTPFETCHSERVERTIMEOPERATION_H
+
+#define MAILCORE_MCONNTPFETCHSERVERTIMEOPERATION_H
+
+#import <Foundation/Foundation.h>
+#import <MailCore/MCONNTPOperation.h>
+
+@class MCOIndexSet;
+
+/** This is an asynchronous operation that will fetch the list of a messages on the NNTP server. */
+@interface MCONNTPFetchServerTimeOperation : MCONNTPOperation
+
+/**
+ Starts the asynchronous fetch operation.
+
+ @param completionBlock Called when the operation is finished.
+
+ - On success `error` will be nil and `date` will be the server's date and time as an NSDate.
+
+ - On failure, `error` will be set with `MCOErrorDomain` as domain and an
+ error code available in MCOConstants.h, `messages` will be null
+ */
+- (void) start:(void (^)(NSError * error, NSDate * date))completionBlock;
+
+@end
+
+#endif
diff --git a/src/objc/nntp/MCONNTPFetchServerTimeOperation.mm b/src/objc/nntp/MCONNTPFetchServerTimeOperation.mm
new file mode 100644
index 00000000..a2f51f91
--- /dev/null
+++ b/src/objc/nntp/MCONNTPFetchServerTimeOperation.mm
@@ -0,0 +1,70 @@
+//
+// MCONNTPFetchServerTimeOperation.m
+// mailcore2
+//
+// Created by Robert Widmann on 10/21/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#import "MCONNTPFetchServerTimeOperation.h"
+
+#include "MCAsyncNNTP.h"
+
+#import "MCOOperation+Private.h"
+#import "MCOUtils.h"
+
+typedef void (^CompletionType)(NSError *error, NSDate * date);
+
+@implementation MCONNTPFetchServerTimeOperation {
+ CompletionType _completionBlock;
+}
+
+#define nativeType mailcore::NNTPFetchServerTimeOperation
+
++ (void) load
+{
+ MCORegisterClass(self, &typeid(nativeType));
+}
+
++ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object
+{
+ nativeType * op = (nativeType *) object;
+ return [[[self alloc] initWithMCOperation:op] autorelease];
+}
+
+- (void) dealloc
+{
+ [_completionBlock release];
+ [super dealloc];
+}
+
+- (void) start:(void (^)(NSError *error, NSDate * date))completionBlock
+{
+ _completionBlock = [completionBlock copy];
+ [self start];
+}
+
+- (void) cancel
+{
+ [_completionBlock release];
+ _completionBlock = nil;
+ [super cancel];
+}
+
+- (void) operationCompleted
+{
+ if (_completionBlock == NULL)
+ return;
+
+ nativeType *op = MCO_NATIVE_INSTANCE;
+ if (op->error() == mailcore::ErrorNone) {
+ _completionBlock(nil, [NSDate dateWithTimeIntervalSince1970:op->time()]);
+ } else {
+ _completionBlock([NSError mco_errorWithErrorCode:op->error()], nil);
+ }
+ [_completionBlock release];
+ _completionBlock = nil;
+}
+
+
+@end
diff --git a/src/objc/nntp/MCONNTPSession.h b/src/objc/nntp/MCONNTPSession.h
index 6712d9e4..413de507 100644
--- a/src/objc/nntp/MCONNTPSession.h
+++ b/src/objc/nntp/MCONNTPSession.h
@@ -16,11 +16,14 @@
#import <MailCore/MCOConstants.h>
-@class MCONNTPFetchArticlesOperation;
+@class MCONNTPFetchAllArticlesOperation;
@class MCONNTPFetchHeaderOperation;
@class MCONNTPFetchArticleOperation;
@class MCONNTPListNewsgroupsOperation;
+@class MCONNTPFetchOverviewOperation;
+@class MCONNTPFetchServerTimeOperation;
@class MCONNTPOperation;
+@class MCOIndexSet;
/** This class implements asynchronous access to the NNTP protocol.*/
@@ -68,16 +71,16 @@
/**
Returns an operation that will fetch the list of article numbers.
- MCONNTPFetchArticlesOperation * op = [session fetchArticlesOperation];
+ MCONNTPFetchAllArticlesOperation * op = [session fetchAllArticlesOperation:@"comp.lang.c"];
[op start:^(NSError * error, MCOIndexSet * articles) {
}];
*/
-- (MCONNTPFetchArticlesOperation *) fetchArticlesOperation:(NSString *)group;
+- (MCONNTPFetchAllArticlesOperation *) fetchAllArticlesOperation:(NSString *)group;
/**
Returns an operation that will fetch the header of the given message.
- MCONNTPFetchHeaderOperation * op = [session fetchHeaderOperationWithIndex:idx inGroup:@"Group"];
+ MCONNTPFetchHeaderOperation * op = [session fetchHeaderOperationWithIndex:idx inGroup:@"comp.lang.c"];
[op start:^(NSError * error, MCOMessageHeader * header) {
// header is the parsed header of the message.
}];
@@ -85,9 +88,19 @@
- (MCONNTPFetchHeaderOperation *) fetchHeaderOperationWithIndex:(unsigned int)index inGroup:(NSString *)group;
/**
+ Returns an operation that will fetch an overview (headers) for a set of messages.
+
+ MCONNTPFetchHeaderOperation * op = [session fetchOverviewOperationWithIndexes:indexes inGroup:@"comp.lang.c"];
+ [op start:^(NSError * error, NSArray * headers) {
+ // headers are the parsed headers of each part of the overview.
+ }];
+ */
+- (MCONNTPFetchOverviewOperation *)fetchOverviewOperationWithIndexes:(MCOIndexSet *)indexes inGroup:(NSString *)group;
+
+/**
Returns an operation that will fetch the content of the given message.
- MCONNTPFetchArticleOperation * op = [session fetchArticleOperationWithIndex:idx inGroup:@"Group"];
+ MCONNTPFetchArticleOperation * op = [session fetchArticleOperationWithIndex:idx inGroup:@"comp.lang.c"];
[op start:^(NSError * error, NSData * messageData) {
// messageData is the RFC 822 formatted message data.
}];
@@ -95,6 +108,25 @@
- (MCONNTPFetchArticleOperation *) fetchArticleOperationWithIndex:(unsigned int)index inGroup:(NSString *)group;
/**
+ Returns an operation that will fetch the content of a message with the given messageID.
+
+ MCONNTPFetchArticleOperation * op = [session fetchArticleOperationWithMessageID:@"<MessageID123@mail.google.com>" inGroup:@"comp.lang.c"];
+ [op start:^(NSError * error, NSData * messageData) {
+ // messageData is the RFC 822 formatted message data.
+ }];
+ */
+- (MCONNTPFetchArticleOperation *) fetchArticleOperationWithMessageID:(NSString *)messageID inGroup:(NSString *)group;
+
+/**
+ Returns an operation that will fetch the server's date and time.
+
+ MCONNTPFetchArticleOperation * op = [session fetchServerDateOperation];
+ [op start:^(NSError * error, NSDate * serverDate) {
+ }];
+ */
+- (MCONNTPFetchServerTimeOperation *) fetchServerDateOperation;
+
+/**
Returns an operation that will list all available newsgroups.
MCONNTPListNewsgroupsOperation * op = [session listAllNewsgroupsOperation];
@@ -104,13 +136,13 @@
- (MCONNTPListNewsgroupsOperation *) listAllNewsgroupsOperation;
/**
- Returns an operation that will list all newsgroups subscribed to by the user.
+ Returns an operation that will list server-suggested default newsgroups.
- MCONNTPListNewsgroupsOperation * op = [session listSubscribedNewsgroupsOperation];
- [op start:^(NSError * error, NSArray * subscribedGroups) {
+ MCONNTPListNewsgroupsOperation * op = [session listDefaultNewsgroupsOperation];
+ [op start:^(NSError * error, NSArray * defaultGroups) {
}];
*/
-- (MCONNTPListNewsgroupsOperation *) listSubscribedNewsgroupsOperation;
+- (MCONNTPListNewsgroupsOperation *) listDefaultNewsgroupsOperation;
/**
Returns an operation that will disconnect the session.
diff --git a/src/objc/nntp/MCONNTPSession.mm b/src/objc/nntp/MCONNTPSession.mm
index ead237ea..95c87364 100644
--- a/src/objc/nntp/MCONNTPSession.mm
+++ b/src/objc/nntp/MCONNTPSession.mm
@@ -13,7 +13,7 @@
#import "MCOUtils.h"
#import "MCONNTPOperation.h"
#import "MCOOperation+Private.h"
-#import "MCONNTPFetchArticlesOperation.h"
+#import "MCONNTPFetchAllArticlesOperation.h"
#import "MCONNTPOperation+Private.h"
using namespace mailcore;
@@ -122,9 +122,9 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
return result;
}
-- (MCONNTPFetchArticlesOperation *) fetchArticlesOperation:(NSString *)group
+- (MCONNTPFetchAllArticlesOperation *) fetchAllArticlesOperation:(NSString *)group
{
- mailcore::MCNNTPFetchArticlesOperation * coreOp = MCO_NATIVE_INSTANCE->fetchArticlesOperation(MCO_FROM_OBJC(mailcore::String, group));
+ mailcore::NNTPFetchAllArticlesOperation * coreOp = MCO_NATIVE_INSTANCE->fetchAllArticlesOperation(MCO_FROM_OBJC(mailcore::String, group));
return MCO_TO_OBJC_OP(coreOp);
}
@@ -140,13 +140,28 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
return MCO_TO_OBJC_OP(coreOp);
}
+- (MCONNTPFetchArticleOperation *) fetchArticleOperationWithMessageID:(NSString *)messageID inGroup:(NSString *)group {
+ mailcore::NNTPFetchArticleOperation * coreOp = MCO_NATIVE_INSTANCE->fetchArticleByMessageIDOperation(MCO_FROM_OBJC(mailcore::String, group), MCO_FROM_OBJC(mailcore::String, messageID));
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
+- (MCONNTPFetchOverviewOperation *)fetchOverviewOperationWithIndexes:(MCOIndexSet *)indexes inGroup:(NSString *)group {
+ mailcore::NNTPFetchOverviewOperation * coreOp = MCO_NATIVE_INSTANCE->fetchOverviewOperationWithIndexes(MCO_FROM_OBJC(mailcore::String, group), MCO_FROM_OBJC(mailcore::IndexSet, indexes));
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
+- (MCONNTPFetchServerTimeOperation *) fetchServerDateOperation {
+ mailcore::NNTPFetchServerTimeOperation * coreOp = MCO_NATIVE_INSTANCE->fetchServerDateOperation();
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
- (MCONNTPListNewsgroupsOperation *) listAllNewsgroupsOperation {
mailcore::NNTPListNewsgroupsOperation * coreOp = MCO_NATIVE_INSTANCE->listAllNewsgroupsOperation();
return MCO_TO_OBJC_OP(coreOp);
}
-- (MCONNTPListNewsgroupsOperation *) listSubscribedNewsgroupsOperation {
- mailcore::NNTPListNewsgroupsOperation * coreOp = MCO_NATIVE_INSTANCE->listSubscribedNewsgroupsOperation();
+- (MCONNTPListNewsgroupsOperation *) listDefaultNewsgroupsOperation {
+ mailcore::NNTPListNewsgroupsOperation * coreOp = MCO_NATIVE_INSTANCE->listDefaultNewsgroupsOperation();
return MCO_TO_OBJC_OP(coreOp);
}