forked from artifacts/AFCache
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
88 lines (76 loc) · 5.26 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Current version is Rev.0.7.1
2011/03/07: (Michael Markowski, [email protected])
- Requests resulting in a status code >= 400 will now by default call didFailLoading: instead of didFinishLoading:
You may change this behaviour by setting [AFCache sharedInstance].failOnStatusCodeAbove400=NO
2011/02/08, v.0.7: (Michael Markowski, [email protected])
- Moved master to pre0.7, deleted master, moved branch "bip" to master
before moving, on branch bip:
- Added AFPackageInfo to help the cache remembering about imported resources
- Added macro AFLog for logging and removed most of the AFCACHE_LOGGING_ENABLED ifdefs
2011/01/30, v.0.6.8: (Bjoern Kriews, bkr (0x40) jumper.org)
- Added option to use (and embed) the EngineRoom framework for logging
this is work in progress - see EngineRoom.xcconfig
set CURRENT_PROJECT_VERSION in base.xcconfig, use it in Info.plist
base.xcconfig included by OSX framework targets
AFCache-OSX-release.xcconfig has ONLY_ACTIVE_ARCH (???)
2010/08/12:
- Major overhaul so that
1.) all files are written to disk directly
2.) when data is requested, files are mapped into memory
3.) information about download status is stored as extended file attributes
- added python test server, so we can easily simulate funny behaviour
2010/08/10, v.0.6.6:
- added some functionality to the packager
- testet packaging process on real-world project
- changed file naming pattern from hash to hostname/path/to/file.type
- cache info store now uses the filename as a key, still needs some cleanup work
- added Xcode Project configuration files for all targets
- updated demo to demonstrate packaging
2010/07/10, v.0.6.5:
- Created new Xcode Project, I messed the old one up. Added targets for different architectures.
- alpha of afcpkg commandline tool
2010/07/10, v.0.6.4:
- Fixed a bug when an If-Modified-Since Rrequest was fired to revalidate the cached object. The delegate method connectionDidFinish: was called twice.
2010/07/10, v.0.6.3:
- Added Framework target for OSX
- Changed some ints to NSUInteger
2010/07/07, v.0.6.2:
- Removed asImage method in AFCache to get rid of UIKit dependency
- Removed assertion in cacheableItemFromCacheStore: that caused a termination of the running application when cache info store and
filesystem became out of sync. Now just logging the error (if AFCACHE_LOGGING_ENABLED). There are still be some circumstances that lead to discrepancies between
the filesystem and the cache info dictionary that seem to be software bugs, but they should not force a termination of the running program. TODO: observe the logs and try
find out what is causing the cache info store not to be written.
- Added Etag support.
- Added Demo target
- Added kHouskeepingInterval: housekeeping is only called every nth request
- Added script to create FAT library for simulator and iOS
2010/07/01. v.0.6.1:
- Added AFURLCache contribution by Nico Schmidt.
- Fixed several flaws when dealing with different combinations of http headers
- Added storeCachedResponse:forRequest: to AFURLCache. Not implemented yet, just checking if method is called for all requests. Unfortunately this method is NOT called for implicit requests, e.g. <img src="..."/>. Would be the ideal place to fill the cache.
- added housekeeping: in AFCache class which is called when saving the cache's state (via archive:)
2010/04/28:
- Started versioning in with v.0.6.
- Transformed the classes into a static library and set up an Xcode Project
- Added unit tests for the following response types:
- with expire header
- with max-age header
- with out expire or max-age
- with expire header, while switching the cache into offline mode and back
- Added php script for use in unit tests
- Added AFCacheableItemInfo to hold requestTimestamp, responseTimestamp, serverDate, lastModified, age, maxAge, and expireDate
- Renamed expireDates dictionary in AFCache.m to cacheInfoStore
- cacheInfoStore now stores AFCacheableItemInfo objects instead of NSDate objects holding the expire date, which enables the correct use of AFCache.m's "isFresh:" method
- Removed some hacks for using the cache offline and introduced an "offline mode"
- Now doing an If-Modified-Since request if object is stale instead of doing a regular request which then might be canceled. Though we were not doing an additional request with the old method,
packets were transferred through the network to be dropped by the kernel's tcp stack which costs unnessessary bandwidth.
- Introduced cacheStatus in AFCacheableItem to hold one of the following statuses:
kCacheStatusNew: object is new, was not in cache before
kCacheStatusFresh: object is delivered from cache
kCacheStatusModified: object is in cache, but stale. An If-Modified-Since request was made to check the validity of the cached object. IMS request returns 200 (object has been modified).
kCacheStatusNotModified: object is in cache, but stale. An If-Modified-Since request was made to check the validity of the cached object. IMS request returns 304 (object has NOT been modified).
kCacheStatusRevalidationPending: used internally to determinate how to handle the status code of a pending request.
- cleaned up code and reformatted it
- Refactored NSDate+Parsing to DateParser because of Problems using categories from a static library in unit tests
- Added documentation
- Added CHANGES document