blob: 220e7418a6f45e2e92e334b6bed0d108baac8c7b [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_DEVELOPER_DEBUG_ZXDB_EXPR_MOCK_EXPR_NODE_H_
#define SRC_DEVELOPER_DEBUG_ZXDB_EXPR_MOCK_EXPR_NODE_H_
#include "src/developer/debug/zxdb/expr/expr_node.h"
namespace zxdb {
// Custom ExprNode that just returns a known value, either synchronously or
// asynchronously.
class MockExprNode : public ExprNode {
public:
// Construct with fxl::MakeRefCounted().
void Eval(const fxl::RefPtr<EvalContext>& context, EvalCallback cb) const override;
void Print(std::ostream& out, int indent) const override;
private:
FRIEND_REF_COUNTED_THREAD_SAFE(MockExprNode);
FRIEND_MAKE_REF_COUNTED(MockExprNode);
MockExprNode(bool is_synchronous, ErrOrValue value);
~MockExprNode() override;
bool is_synchronous_;
ErrOrValue value_;
};
} // namespace zxdb
#endif // SRC_DEVELOPER_DEBUG_ZXDB_EXPR_MOCK_EXPR_NODE_H_