#ifndef ATOM_GROUP_CACHE_H
#define ATOM_GROUP_CACHE_H

#ifndef ATOM_CACHE_H
#include "Atom_cache.h"
#endif

#ifndef DBC_H
#include "DbC.h"
#endif

namespace MM
{
class Atom_group;

class Atom_group_cache : protected DbC
{
protected:
    Atom_group &            atom_group_;
    Array <Atom_cache>      atom_;
    bool                    cache_flag_;

public:
    explicit Atom_group_cache (Atom_group & atom_group);
    virtual ~Atom_group_cache();

/*    virtual bool        locked () const         {return cache_flag_;}
    virtual void        set_lock (bool on); //*/

    virtual void        cache_atoms ();
    virtual void        flush_coords();
    virtual void        flush_force ();
    //virtual void        flush_born  ();
};

}//MM

#endif //ATOM_GROUP_CACHE_H
