| //===-- TypeValidator.cpp ---------------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // C Includes |
| |
| // C++ Includes |
| |
| // Other libraries and framework includes |
| |
| // Project includes |
| #include "lldb/DataFormatters/TypeValidator.h" |
| #include "lldb/Core/StreamString.h" |
| |
| using namespace lldb; |
| using namespace lldb_private; |
| |
| TypeValidatorImpl::TypeValidatorImpl(const Flags &flags) : |
| m_flags(flags), |
| m_my_revision(0) |
| { |
| } |
| |
| TypeValidatorImpl::~TypeValidatorImpl() |
| { |
| } |
| |
| TypeValidatorImpl::ValidationResult |
| TypeValidatorImpl::Success () |
| { |
| return ValidationResult { TypeValidatorResult::Success, "" }; |
| } |
| |
| TypeValidatorImpl::ValidationResult |
| TypeValidatorImpl::Failure (std::string message) |
| { |
| return ValidationResult { TypeValidatorResult::Failure, message }; |
| } |
| |
| TypeValidatorImpl_CXX::TypeValidatorImpl_CXX (ValidatorFunction f, std::string d, const TypeValidatorImpl::Flags& flags) : |
| TypeValidatorImpl(flags), |
| m_description(d), |
| m_validator_function(f) |
| { |
| } |
| |
| TypeValidatorImpl_CXX::~TypeValidatorImpl_CXX() |
| { |
| } |
| |
| TypeValidatorImpl::ValidationResult |
| TypeValidatorImpl_CXX::FormatObject (ValueObject *valobj) const |
| { |
| if (!valobj) |
| return Success(); // I guess there's nothing wrong with a null valueobject.. |
| |
| return m_validator_function(valobj); |
| } |
| |
| std::string |
| TypeValidatorImpl_CXX::GetDescription() |
| { |
| StreamString sstr; |
| sstr.Printf ("%s%s%s%s", |
| m_description.c_str(), |
| Cascades() ? "" : " (not cascading)", |
| SkipsPointers() ? " (skip pointers)" : "", |
| SkipsReferences() ? " (skip references)" : ""); |
| return sstr.GetString(); |
| } |