Index: sandbox/linux/bpf_dsl/bpf_dsl_impl.h |
diff --git a/sandbox/linux/bpf_dsl/bpf_dsl_impl.h b/sandbox/linux/bpf_dsl/bpf_dsl_impl.h |
index cf067b3933f10e06d1ab071dcd1b7f4c4ff0f917..48b91692b66272197bbc69f8702b6cd4b0d41a42 100644 |
--- a/sandbox/linux/bpf_dsl/bpf_dsl_impl.h |
+++ b/sandbox/linux/bpf_dsl/bpf_dsl_impl.h |
@@ -11,20 +11,24 @@ |
namespace sandbox { |
class ErrorCode; |
-class SandboxBPF; |
namespace bpf_dsl { |
+class PolicyCompiler; |
+ |
namespace internal { |
// Internal interface implemented by BoolExpr implementations. |
class BoolExprImpl : public base::RefCounted<BoolExprImpl> { |
public: |
- BoolExprImpl() {} |
+ // Compile uses |pc| to construct an ErrorCode that conditionally continues |
+ // to either |true_ec| or |false_ec|, depending on whether the represented |
+ // boolean expression is true or false. |
virtual ErrorCode Compile(PolicyCompiler* pc, |
ErrorCode true_ec, |
ErrorCode false_ec) const = 0; |
protected: |
+ BoolExprImpl() {} |
virtual ~BoolExprImpl() {} |
private: |
@@ -35,11 +39,16 @@ class BoolExprImpl : public base::RefCounted<BoolExprImpl> { |
// Internal interface implemented by ResultExpr implementations. |
class ResultExprImpl : public base::RefCounted<ResultExprImpl> { |
public: |
- ResultExprImpl() {} |
+ // Compile uses |pc| to construct an ErrorCode analogous to the represented |
+ // result expression. |
virtual ErrorCode Compile(PolicyCompiler* pc) const = 0; |
+ |
+ // HasUnsafeTraps returns whether the result expression is or recursively |
+ // contains an unsafe trap expression. |
virtual bool HasUnsafeTraps() const; |
protected: |
+ ResultExprImpl() {} |
virtual ~ResultExprImpl() {} |
private: |