Changeset 166

Show
Ignore:
Timestamp:
07/04/08 14:34:07 (2 months ago)
Author:
cyrusdaboo
Message:

Only read web calendars when the etag has changed. Fix some updating issues.

Location:
Mulberry/branches/v4.1d1/Sources_Common/Calendar_Store/Protocols
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • Mulberry/branches/v4.1d1/Sources_Common/Calendar_Store/Protocols/CCalendarProtocol.cpp

    r160 r166  
    821821                // up to date. 
    822822        } 
     823        else if (IsWebCalendar()) 
     824        { 
     825                SubscribeFullCalendar(node, cal); 
     826        } 
    823827        else 
    824828        { 
     
    895899        else 
    896900                SyncFullFromServer(node, cal); 
     901        Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    897902} 
    898903 
     
    12661271} 
    12671272 
    1268 void CCalendarProtocol::ReadFullCalendar(const CCalendarStoreNode& node, iCal::CICalendar& cal) 
     1273void CCalendarProtocol::ReadFullCalendar(const CCalendarStoreNode& node, iCal::CICalendar& cal, bool if_changed) 
    12691274{ 
    12701275        // Don't do on server if cache is primary 
    12711276        if (mCacheIsPrimary) 
    1272                 mCacheClient->_ReadFullCalendar(node, cal); 
     1277                mCacheClient->_ReadFullCalendar(node, cal, if_changed); 
    12731278        else 
    1274                 mClient->_ReadFullCalendar(node, cal); 
     1279                mClient->_ReadFullCalendar(node, cal, if_changed); 
     1280        Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    12751281} 
    12761282 
     
    13011307{ 
    13021308        // Always read from the main server 
    1303         mClient->_ReadFullCalendar(node, cal); 
     1309        bool if_changed = !cal.GetETag().empty(); 
     1310        mClient->_ReadFullCalendar(node, cal, if_changed); 
    13041311 
    13051312        // Always keep disconnected cache in sync with server 
     
    13351342                // Always fall back to writing entire calendar 
    13361343                WriteFullCalendar(node, cal); 
     1344                Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    13371345                return; 
    13381346        } 
     
    13531361                node.SyncNow(); 
    13541362        } 
     1363 
     1364        Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    13551365} 
    13561366 
     
    13621372                // Always fall back to writing entire calendar 
    13631373                WriteFullCalendar(node, cal); 
     1374                Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    13641375                return; 
    13651376        } 
     
    13801391                node.SyncNow(); 
    13811392        } 
     1393 
     1394        Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    13821395} 
    13831396 
     
    13891402                // Always fall back to writing entire calendar 
    13901403                WriteFullCalendar(node, cal); 
     1404                Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    13911405                return; 
    13921406        } 
     
    14071421                node.SyncNow(); 
    14081422        } 
     1423 
     1424        Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    14091425} 
    14101426 
     
    14161432                // Always fall back to writing entire calendar 
    14171433                WriteFullCalendar(node, cal); 
     1434                Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    14181435                return; 
    14191436        } 
     
    14341451                node.SyncNow(); 
    14351452        } 
     1453 
     1454        Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    14361455} 
    14371456 
     
    14581477                DumpCalendars(); 
    14591478        } 
     1479 
     1480        Broadcast_Message(eBroadcast_RefreshNode, (void*)&node); 
    14601481} 
    14611482 
  • Mulberry/branches/v4.1d1/Sources_Common/Calendar_Store/Protocols/CCalendarProtocol.h

    r113 r166  
    171171        void CopyCalendarContents(const CCalendarStoreNode& node, iCal::CICalendar& newcal); 
    172172 
    173         void ReadFullCalendar(const CCalendarStoreNode& node, iCal::CICalendar& cal); 
     173        void ReadFullCalendar(const CCalendarStoreNode& node, iCal::CICalendar& cal, bool if_changed=false); 
    174174        void WriteFullCalendar(const CCalendarStoreNode& node, iCal::CICalendar& cal); 
    175175