[Box Backup-commit] COMMIT r2636 - in box/trunk: bin/bbackupquery lib/backupclient
subversion at boxbackup.org
subversion at boxbackup.org
Wed Feb 24 20:28:33 GMT 2010
Author: chris
Date: 2010-02-24 20:28:33 +0000 (Wed, 24 Feb 2010)
New Revision: 2636
Modified:
box/trunk/bin/bbackupquery/BackupQueries.cpp
box/trunk/lib/backupclient/BackupClientFileAttributes.cpp
box/trunk/lib/backupclient/BackupClientFileAttributes.h
Log:
Add option to display attribute modification times from additional
attributes if available in bbackupquery.
Modified: box/trunk/bin/bbackupquery/BackupQueries.cpp
===================================================================
--- box/trunk/bin/bbackupquery/BackupQueries.cpp 2010-02-24 20:12:00 UTC (rev 2635)
+++ box/trunk/bin/bbackupquery/BackupQueries.cpp 2010-02-24 20:28:33 UTC (rev 2636)
@@ -212,7 +212,7 @@
{
{ "quit", "" },
{ "exit", "" },
- { "list", "rodIFtTsh", },
+ { "list", "rodIFtTash", },
{ "pwd", "" },
{ "cd", "od" },
{ "lcd", "" },
@@ -397,6 +397,7 @@
#define LIST_OPTION_NOFLAGS 'F'
#define LIST_OPTION_TIMES_LOCAL 't'
#define LIST_OPTION_TIMES_UTC 'T'
+ #define LIST_OPTION_TIMES_ATTRIBS 'a'
#define LIST_OPTION_SIZEINBLOCKS 's'
#define LIST_OPTION_DISPLAY_HASH 'h'
@@ -436,18 +437,48 @@
}
static std::string GetTimeString(BackupStoreDirectory::Entry& en,
- bool useLocalTime)
+ bool useLocalTime, bool showAttrModificationTimes)
{
std::ostringstream out;
- out << BoxTimeToISO8601String(en.GetModificationTime(), useLocalTime);
+ box_time_t originalTime, newAttributesTime;
+ // there is no attribute modification time in the directory
+ // entry, unfortunately, so we can't display it.
+ originalTime = en.GetModificationTime();
+ out << BoxTimeToISO8601String(originalTime, useLocalTime);
+
if(en.HasAttributes())
{
const StreamableMemBlock &storeAttr(en.GetAttributes());
BackupClientFileAttributes attr(storeAttr);
- out << "~" << BoxTimeToISO8601String(attr.GetModificationTime(),
- useLocalTime);
+
+ box_time_t NewModificationTime, NewAttrModificationTime;
+ attr.GetModificationTimes(&NewModificationTime,
+ &NewAttrModificationTime);
+
+ if (showAttrModificationTimes)
+ {
+ newAttributesTime = NewAttrModificationTime;
+ }
+ else
+ {
+ newAttributesTime = NewModificationTime;
+ }
+
+ if (newAttributesTime == originalTime)
+ {
+ out << "*";
+ }
+ else
+ {
+ out << "~" << BoxTimeToISO8601String(newAttributesTime,
+ useLocalTime);
+ }
}
+ else
+ {
+ out << " ";
+ }
return out.str();
}
@@ -550,13 +581,15 @@
if(opts[LIST_OPTION_TIMES_UTC])
{
// Show UTC times...
- printf("%s ", GetTimeString(*en, false).c_str());
+ printf("%s ", GetTimeString(*en, false,
+ opts[LIST_OPTION_TIMES_ATTRIBS]).c_str());
}
if(opts[LIST_OPTION_TIMES_LOCAL])
{
// Show local times...
- printf("%s ", GetTimeString(*en, true).c_str());
+ printf("%s ", GetTimeString(*en, true,
+ opts[LIST_OPTION_TIMES_ATTRIBS]).c_str());
}
if(opts[LIST_OPTION_DISPLAY_HASH])
Modified: box/trunk/lib/backupclient/BackupClientFileAttributes.cpp
===================================================================
--- box/trunk/lib/backupclient/BackupClientFileAttributes.cpp 2010-02-24 20:12:00 UTC (rev 2635)
+++ box/trunk/lib/backupclient/BackupClientFileAttributes.cpp 2010-02-24 20:28:33 UTC (rev 2636)
@@ -650,13 +650,15 @@
// --------------------------------------------------------------------------
//
// Function
-// Name: BackupClientFileAttributes::GetModificationTime()
+// Name: BackupClientFileAttributes::GetModificationTimes()
// Purpose: Returns the modification time embedded in the
// attributes.
// Created: 2010/02/24
//
// --------------------------------------------------------------------------
-box_time_t BackupClientFileAttributes::GetModificationTime() const
+void BackupClientFileAttributes::GetModificationTimes(
+ box_time_t *pModificationTime,
+ box_time_t *pAttrModificationTime) const
{
// Got something loaded
if(GetSize() <= 0)
@@ -691,7 +693,15 @@
// Get pointer to structure
attr_StreamFormat *pattr = (attr_StreamFormat*)mpClearAttributes->GetBuffer();
- return box_ntoh64(pattr->ModificationTime);
+ if(pModificationTime)
+ {
+ *pModificationTime = box_ntoh64(pattr->ModificationTime);
+ }
+
+ if(pAttrModificationTime)
+ {
+ *pAttrModificationTime = box_ntoh64(pattr->AttrModificationTime);
+ }
}
// --------------------------------------------------------------------------
Modified: box/trunk/lib/backupclient/BackupClientFileAttributes.h
===================================================================
--- box/trunk/lib/backupclient/BackupClientFileAttributes.h 2010-02-24 20:12:00 UTC (rev 2635)
+++ box/trunk/lib/backupclient/BackupClientFileAttributes.h 2010-02-24 20:28:33 UTC (rev 2636)
@@ -47,7 +47,8 @@
InodeRefType *pInodeNumber = 0, bool *pHasMultipleLinks = 0);
void WriteAttributes(const char *Filename,
bool MakeUserWritable = false) const;
- box_time_t GetModificationTime() const;
+ void GetModificationTimes(box_time_t *pModificationTime,
+ box_time_t *pAttrModificationTime) const;
bool IsSymLink() const;
More information about the Boxbackup-commit
mailing list