~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/definition/cache.h

  • Committer: Brian Aker
  • Date: 2010-11-19 03:03:40 UTC
  • mto: (1945.2.1 quick)
  • mto: This revision was merged to the branch mainline in revision 1944.
  • Revision ID: brian@tangent.org-20101119030340-vw9l27v75r317o55
Added generator for table_definition cache. Now no one can touch the guts :)

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
 
26
26
namespace drizzled {
27
27
 
 
28
namespace generator {
 
29
class TableDefinitionCache;
 
30
}
 
31
 
28
32
namespace definition {
29
33
 
30
 
typedef boost::unordered_map< TableIdentifier::Key, TableShare::shared_ptr> CacheMap;
31
 
 
32
34
class Cache
33
35
{
34
 
  CacheMap cache;
35
 
 
36
36
public:
 
37
 
 
38
typedef boost::unordered_map< TableIdentifier::Key, TableShare::shared_ptr> Map;
 
39
 
37
40
  static inline Cache &singleton()
38
41
  {
39
42
    static Cache open_cache;
41
44
    return open_cache;
42
45
  }
43
46
 
44
 
  CacheMap &getCache()
45
 
  {
46
 
    return cache;
47
 
  }
48
 
 
49
47
  size_t size() const
50
48
  {
51
49
    return cache.size();
56
54
    cache.rehash(arg);
57
55
  }
58
56
 
 
57
  boost::mutex &mutex()
 
58
  {
 
59
    return _mutex;
 
60
  }
 
61
 
59
62
  TableShare::shared_ptr find(const TableIdentifier &identifier);
60
63
  void erase(const TableIdentifier &identifier);
61
64
  bool insert(const TableIdentifier &identifier, TableShare::shared_ptr share);
 
65
 
 
66
protected:
 
67
  friend class drizzled::generator::TableDefinitionCache;
 
68
 
 
69
  Map &getCache()
 
70
  {
 
71
    return cache;
 
72
  }
 
73
 
 
74
private:
 
75
  Map cache;
 
76
  boost::mutex _mutex;
62
77
};
63
78
 
64
79
} /* namespace definition */