Lines Matching refs:Query
206 QueryNode::QueryNode(const Query& query) : query_(query) {
212 // Query
214 Query::Query(TraceEventMember member)
222 Query::Query(TraceEventMember member, const std::string& arg_name)
231 Query::Query(const Query& query)
232 : type_(query.type_),
233 operator_(query.operator_),
234 left_(query.left_),
235 right_(query.right_),
236 member_(query.member_),
237 number_(query.number_),
238 string_(query.string_),
239 is_pattern_(query.is_pattern_) {
242 Query::~Query() {
245 Query Query::String(const std::string& str) {
246 return Query(str);
249 Query Query::Double(double num) {
250 return Query(num);
253 Query Query::Int(int32_t num) {
254 return Query(static_cast<double>(num));
257 Query Query::Uint(uint32_t num) {
258 return Query(static_cast<double>(num));
261 Query Query::Bool(bool boolean) {
262 return Query(boolean ? 1.0 : 0.0);
265 Query Query::Phase(char phase) {
266 return Query(static_cast<double>(phase));
269 Query Query::Pattern(const std::string& pattern) {
270 Query query(pattern);
271 query.is_pattern_ = true;
272 return query;
275 bool Query::Evaluate(const TraceEvent& event) const {
291 << "Invalid query: missing boolean expression";
297 << "Invalid query: comparison operator used between event member and "
320 bool Query::CompareAsDouble(const TraceEvent& event, bool* result) const {
349 bool Query::CompareAsString(const TraceEvent& event, bool* result) const {
388 bool Query::EvaluateArithmeticOperator(const TraceEvent& event,
426 bool Query::GetAsDouble(const TraceEvent& event, double* num) const {
440 bool Query::GetAsString(const TraceEvent& event, std::string* str) const {
452 const TraceEvent* Query::SelectTargetEvent(const TraceEvent* event,
463 bool Query::GetMemberValueAsDouble(const TraceEvent& event,
539 bool Query::GetMemberValueAsString(const TraceEvent& event,
583 Query::Query(const std::string& str)
592 Query::Query(double num)
599 const Query& Query::left() const {
600 return left_->query();
603 const Query& Query::right() const {
604 return right_->query();
607 Query Query::operator==(const Query& rhs) const {
608 return Query(*this, rhs, OP_EQ);
611 Query Query::operator!=(const Query& rhs) const {
612 return Query(*this, rhs, OP_NE);
615 Query Query::operator<(const Query& rhs) const {
616 return Query(*this, rhs, OP_LT);
619 Query Query::operator<=(const Query& rhs) const {
620 return Query(*this, rhs, OP_LE);
623 Query Query::operator>(const Query& rhs) const {
624 return Query(*this, rhs, OP_GT);
627 Query Query::operator>=(const Query& rhs) const {
628 return Query(*this, rhs, OP_GE);
631 Query Query::operator&&(const Query& rhs) const {
632 return Query(*this, rhs, OP_AND);
635 Query Query::operator||(const Query& rhs) const {
636 return Query(*this, rhs, OP_OR);
639 Query Query::operator!() const {
640 return Query(*this, OP_NOT);
643 Query Query::operator+(const Query& rhs) const {
644 return Query(*this, rhs, OP_ADD);
647 Query Query::operator-(const Query& rhs) const {
648 return Query(*this, rhs, OP_SUB);
651 Query Query::operator*(const Query& rhs) const {
652 return Query(*this, rhs, OP_MUL);
655 Query Query::operator/(const Query& rhs) const {
656 return Query(*this, rhs, OP_DIV);
659 Query Query::operator%(const Query& rhs) const {
660 return Query(*this, rhs, OP_MOD);
663 Query Query::operator-() const {
664 return Query(*this, OP_NEGATE);
668 Query::Query(const Query& left, const Query& right, Operator binary_op)
678 Query::Query(const Query& left, Operator unary_op)
689 // Search |events| for |query| and add matches to |output|.
691 const Query& query,
697 if (query.Evaluate(events[i]))
754 using trace_analyzer::Query;
756 Query begin(Query::EventPhaseIs(TRACE_EVENT_PHASE_BEGIN));
757 Query end(Query::EventPhaseIs(TRACE_EVENT_PHASE_END));
758 Query match(Query::EventName() == Query::OtherName() &&
759 Query::EventCategory() == Query::OtherCategory() &&
760 Query::EventTid() == Query::OtherTid() &&
761 Query::EventPid() == Query::OtherPid());
767 using trace_analyzer::Query;
769 Query begin(
770 Query::EventPhaseIs(TRACE_EVENT_PHASE_ASYNC_BEGIN) ||
771 Query::EventPhaseIs(TRACE_EVENT_PHASE_ASYNC_STEP_INTO) ||
772 Query::EventPhaseIs(TRACE_EVENT_PHASE_ASYNC_STEP_PAST));
773 Query end(Query::EventPhaseIs(TRACE_EVENT_PHASE_ASYNC_END) ||
774 Query::EventPhaseIs(TRACE_EVENT_PHASE_ASYNC_STEP_INTO) ||
775 Query::EventPhaseIs(TRACE_EVENT_PHASE_ASYNC_STEP_PAST));
776 Query match(Query::EventCategory() == Query::OtherCategory() &&
777 Query::EventId() == Query::OtherId());
780 match = match && Query::EventPid() == Query::OtherPid();
786 void TraceAnalyzer::AssociateEvents(const Query& first,
787 const Query& second,
788 const Query& match) {
806 // Temporarily set other to test against the match query.
851 size_t TraceAnalyzer::FindEvents(const Query& query, TraceEventVector* output) {
855 raw_events_, query, output, ignore_metadata_events_);
858 const TraceEvent* TraceAnalyzer::FindFirstOf(const Query& query) {
860 if (FindEvents(query, &output) > 0)
865 const TraceEvent* TraceAnalyzer::FindLastOf(const Query& query) {
867 if (FindEvents(query, &output) > 0)
948 const Query& query,
953 if (query.Evaluate(*events[i])) {
962 const Query& query,
967 if (query.Evaluate(*events[i - 1])) {
976 const Query& query,
986 if (!query.Evaluate(*events.at(i)))
1013 const Query& query,
1021 if (query.Evaluate(*events.at(i)))