// Copyright 2015 The Chromium 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 SANDBOX_LINUX_BPF_DSL_TEST_TRAP_REGISTRY_H_
#define SANDBOX_LINUX_BPF_DSL_TEST_TRAP_REGISTRY_H_

#include <stdint.h>

#include <map>
#include <utility>

#include "sandbox/linux/bpf_dsl/trap_registry.h"

namespace sandbox {
namespace bpf_dsl {

class TestTrapRegistry : public TrapRegistry {
 public:
  TestTrapRegistry();
  virtual ~TestTrapRegistry();

  uint16_t Add(TrapFnc fnc, const void* aux, bool safe) override;
  bool EnableUnsafeTraps() override;

 private:
  using Key = std::pair<TrapFnc, const void*>;

  std::map<Key, uint16_t> map_;

  DISALLOW_COPY_AND_ASSIGN(TestTrapRegistry);
};

}  // namespace bpf_dsl
}  // namespace sandbox

#endif  // SANDBOX_LINUX_BPF_DSL_TEST_TRAP_REGISTRY_H_
