Changeset 2636


Ignore:
Timestamp:
24/02/2010 20:28:33 (2 years ago)
Author:
chris
Message:

Add option to display attribute modification times from additional
attributes if available in bbackupquery.

Location:
box/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • box/trunk/bin/bbackupquery/BackupQueries.cpp

    r2635 r2636  
    213213                { "quit", "" }, 
    214214                { "exit", "" }, 
    215                 { "list", "rodIFtTsh", }, 
     215                { "list", "rodIFtTash", }, 
    216216                { "pwd",  "" }, 
    217217                { "cd",   "od" }, 
     
    398398        #define LIST_OPTION_TIMES_LOCAL         't' 
    399399        #define LIST_OPTION_TIMES_UTC           'T' 
     400        #define LIST_OPTION_TIMES_ATTRIBS       'a' 
    400401        #define LIST_OPTION_SIZEINBLOCKS        's' 
    401402        #define LIST_OPTION_DISPLAY_HASH        'h' 
     
    437438 
    438439static std::string GetTimeString(BackupStoreDirectory::Entry& en, 
    439         bool useLocalTime) 
     440        bool useLocalTime, bool showAttrModificationTimes) 
    440441{ 
    441442        std::ostringstream out; 
    442         out << BoxTimeToISO8601String(en.GetModificationTime(), useLocalTime); 
     443        box_time_t originalTime, newAttributesTime; 
     444 
     445        // there is no attribute modification time in the directory 
     446        // entry, unfortunately, so we can't display it. 
     447        originalTime = en.GetModificationTime(); 
     448        out << BoxTimeToISO8601String(originalTime, useLocalTime); 
    443449 
    444450        if(en.HasAttributes()) 
     
    446452                const StreamableMemBlock &storeAttr(en.GetAttributes()); 
    447453                BackupClientFileAttributes attr(storeAttr); 
    448                 out << "~" << BoxTimeToISO8601String(attr.GetModificationTime(), 
    449                         useLocalTime); 
     454                 
     455                box_time_t NewModificationTime, NewAttrModificationTime; 
     456                attr.GetModificationTimes(&NewModificationTime, 
     457                        &NewAttrModificationTime); 
     458                 
     459                if (showAttrModificationTimes) 
     460                { 
     461                        newAttributesTime = NewAttrModificationTime; 
     462                } 
     463                else 
     464                { 
     465                        newAttributesTime = NewModificationTime; 
     466                } 
     467                 
     468                if (newAttributesTime == originalTime) 
     469                { 
     470                        out << "*"; 
     471                } 
     472                else 
     473                { 
     474                        out << "~" << BoxTimeToISO8601String(newAttributesTime, 
     475                                useLocalTime); 
     476                } 
     477        } 
     478        else 
     479        { 
     480                out << " "; 
    450481        } 
    451482         
     
    551582                { 
    552583                        // Show UTC times... 
    553                         printf("%s ", GetTimeString(*en, false).c_str()); 
     584                        printf("%s ", GetTimeString(*en, false, 
     585                                opts[LIST_OPTION_TIMES_ATTRIBS]).c_str()); 
    554586                } 
    555587 
     
    557589                { 
    558590                        // Show local times... 
    559                         printf("%s ", GetTimeString(*en, true).c_str()); 
     591                        printf("%s ", GetTimeString(*en, true, 
     592                                opts[LIST_OPTION_TIMES_ATTRIBS]).c_str()); 
    560593                } 
    561594                 
  • box/trunk/lib/backupclient/BackupClientFileAttributes.cpp

    r2635 r2636  
    651651// 
    652652// Function 
    653 //              Name:    BackupClientFileAttributes::GetModificationTime() 
     653//              Name:    BackupClientFileAttributes::GetModificationTimes() 
    654654//              Purpose: Returns the modification time embedded in the 
    655655//                       attributes. 
     
    657657// 
    658658// -------------------------------------------------------------------------- 
    659 box_time_t BackupClientFileAttributes::GetModificationTime() const 
     659void BackupClientFileAttributes::GetModificationTimes( 
     660        box_time_t *pModificationTime, 
     661        box_time_t *pAttrModificationTime) const 
    660662{ 
    661663        // Got something loaded 
     
    692694        attr_StreamFormat *pattr = (attr_StreamFormat*)mpClearAttributes->GetBuffer(); 
    693695 
    694         return box_ntoh64(pattr->ModificationTime); 
     696        if(pModificationTime) 
     697        { 
     698                *pModificationTime = box_ntoh64(pattr->ModificationTime); 
     699        } 
     700         
     701        if(pAttrModificationTime) 
     702        { 
     703                *pAttrModificationTime = box_ntoh64(pattr->AttrModificationTime); 
     704        } 
    695705} 
    696706 
  • box/trunk/lib/backupclient/BackupClientFileAttributes.h

    r2635 r2636  
    4848        void WriteAttributes(const char *Filename,  
    4949                bool MakeUserWritable = false) const; 
    50         box_time_t GetModificationTime() const; 
     50        void GetModificationTimes(box_time_t *pModificationTime, 
     51                box_time_t *pAttrModificationTime) const; 
    5152         
    5253        bool IsSymLink() const; 
Note: See TracChangeset for help on using the changeset viewer.