1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef SANDBOX_LINUX_BPF_DSL_BPF_DSL_FORWARD_H_ 6 #define SANDBOX_LINUX_BPF_DSL_BPF_DSL_FORWARD_H_ 7 8 #include "base/memory/ref_counted.h" 9 #include "sandbox/sandbox_export.h" 10 11 namespace sandbox { 12 namespace bpf_dsl { 13 14 // The bpf_dsl_forward.h header provides forward declarations for the 15 // types defined in bpf_dsl.h. It's intended for use in user headers 16 // that need to reference bpf_dsl types, but don't require definitions. 17 18 namespace internal { 19 class ResultExprImpl; 20 class BoolExprImpl; 21 } 22 23 typedef scoped_refptr<const internal::ResultExprImpl> ResultExpr; 24 typedef scoped_refptr<const internal::BoolExprImpl> BoolExpr; 25 26 template <typename T> 27 class Arg; 28 29 class Elser; 30 31 template <typename T> 32 class Caser; 33 34 } // namespace bpf_dsl 35 } // namespace sandbox 36 37 extern template class SANDBOX_EXPORT 38 scoped_refptr<const sandbox::bpf_dsl::internal::BoolExprImpl>; 39 extern template class SANDBOX_EXPORT 40 scoped_refptr<const sandbox::bpf_dsl::internal::ResultExprImpl>; 41 42 #endif // SANDBOX_LINUX_BPF_DSL_BPF_DSL_FORWARD_H_ 43