<commit_before>/****************************************************************/
/*               DO NOT MODIFY THIS HEADER                      */
/* MOOSE - Multiphysics Object Oriented Simulation Environment  */
/*                                                              */
/*           (c) 2010 Battelle Energy Alliance, LLC             */
/*                   ALL RIGHTS RESERVED                        */
/*                                                              */
/*          Prepared by Battelle Energy Alliance, LLC           */
/*            Under Contract No. DE-AC07-05ID14517              */
/*            With the U. S. Department of Energy               */
/*                                                              */
/*            See COPYRIGHT for full restrictions               */
/****************************************************************/

#ifndef MOOSEOBJECTWAREHOUSEBASE_H
#define MOOSEOBJECTWAREHOUSEBASE_H

// MOOSE includes
#include "DependencyResolverInterface.h"
#include "BoundaryRestrictable.h"
#include "BlockRestrictable.h"
#include "MooseVariable.h"
#include "TransientInterface.h"

/**
 * A base storage container for MooseObjects.
 */
template <typename T>
class MooseObjectWarehouseBase
{
public:
  /**
   * Constructor.
   * @param threaded When true (default) threaded storage is enabled.
   */
  MooseObjectWarehouseBase(bool threaded = true);

  /**
   * Destructor.
   */
  virtual ~MooseObjectWarehouseBase();

  /**
   * Adds an object to the storage structure.
   * @param object A shared pointer to the object being added
   */
  virtual void addObject(std::shared_ptr<T> object, THREAD_ID tid = 0);

  ///@{
  /**
   * Retrieve complete vector to the all/block/boundary restricted objects for a given thread.<commit_msg>Forward declare MooseVariable<commit_after>/****************************************************************/
/*               DO NOT MODIFY THIS HEADER                      */
/* MOOSE - Multiphysics Object Oriented Simulation Environment  */
/*                                                              */
/*           (c) 2010 Battelle Energy Alliance, LLC             */
/*                   ALL RIGHTS RESERVED                        */
/*                                                              */
/*          Prepared by Battelle Energy Alliance, LLC           */
/*            Under Contract No. DE-AC07-05ID14517              */
/*            With the U. S. Department of Energy               */
/*                                                              */
/*            See COPYRIGHT for full restrictions               */
/****************************************************************/

#ifndef MOOSEOBJECTWAREHOUSEBASE_H
#define MOOSEOBJECTWAREHOUSEBASE_H

// MOOSE includes
#include "DependencyResolverInterface.h"
#include "BoundaryRestrictable.h"
#include "BlockRestrictable.h"
#include "TransientInterface.h"

// Forward declarations
class MooseVariable;

/**
 * A base storage container for MooseObjects.
 */
template <typename T>
class MooseObjectWarehouseBase
{
public:
  /**
   * Constructor.
   * @param threaded When true (default) threaded storage is enabled.
   */
  MooseObjectWarehouseBase(bool threaded = true);

  /**
   * Destructor.
   */
  virtual ~MooseObjectWarehouseBase();

  /**
   * Adds an object to the storage structure.
   * @param object A shared pointer to the object being added
   */
  virtual void addObject(std::shared_ptr<T> object, THREAD_ID tid = 0);

  ///@{
  /**
   * Retrieve complete vector to the all/block/boundary restricted objects for a given thread.
{'fraction_non_alphanumeric': 0.15501519756838905, 'fraction_numerical': 0.007736943907156673, 'mean_word_length': 1.7591463414634145, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '248037', 'n_tokens_mistral': 883, 'n_tokens_neox': 826, 'n_words': 249}