This source file includes following definitions.
- root_id
- directory
- Lock
- Unlock
- OnUnrecoverableError
- unrecoverable_error_set
- HandleUnrecoverableErrorIfSet
- unrecoverable_error_set_
#include "sync/syncable/syncable_base_transaction.h"
#include "base/debug/trace_event.h"
#include "sync/syncable/directory.h"
namespace syncer {
namespace syncable {
Id BaseTransaction::root_id() {
return Id();
}
Directory* BaseTransaction::directory() const {
return directory_;
}
void BaseTransaction::Lock() {
TRACE_EVENT2("sync_lock_contention", "AcquireLock",
"src_file", from_here_.file_name(),
"src_func", from_here_.function_name());
directory_->kernel_->transaction_mutex.Acquire();
}
void BaseTransaction::Unlock() {
directory_->kernel_->transaction_mutex.Release();
}
void BaseTransaction::OnUnrecoverableError(
const tracked_objects::Location& location,
const std::string& message) {
unrecoverable_error_set_ = true;
unrecoverable_error_location_ = location;
unrecoverable_error_msg_ = message;
directory()->ReportUnrecoverableError();
}
bool BaseTransaction::unrecoverable_error_set() const {
return unrecoverable_error_set_;
}
void BaseTransaction::HandleUnrecoverableErrorIfSet() {
if (unrecoverable_error_set_) {
directory()->OnUnrecoverableError(this,
unrecoverable_error_location_,
unrecoverable_error_msg_);
}
}
BaseTransaction::BaseTransaction(const tracked_objects::Location& from_here,
const char* name,
WriterTag writer,
Directory* directory)
: from_here_(from_here), name_(name), writer_(writer),
directory_(directory), unrecoverable_error_set_(false) {
TRACE_EVENT_BEGIN2("sync", name_,
"src_file", from_here_.file_name(),
"src_func", from_here_.function_name());
}
BaseTransaction::~BaseTransaction() {
TRACE_EVENT_END0("sync", name_);
}
}
}