~drizzle-trunk/drizzle/development

1960.1.6 by Brian Aker
Adding in the engine interface. The filesystem catalog will now handle
1
/* - mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2010 Brian Aker
5
 *
6
 *  This program is free software; you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation; either version 2 of the License, or
9
 *  (at your option) any later version.
10
 *
11
 *  This program is distributed in the hope that it will be useful,
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 *  GNU General Public License for more details.
15
 *
16
 *  You should have received a copy of the GNU General Public License
17
 *  along with this program; if not, write to the Free Software
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
 */
20
2234 by Brian Aker
Mass removal of ifdef/endif in favor of pragma once.
21
#pragma once
1960.1.6 by Brian Aker
Adding in the engine interface. The filesystem catalog will now handle
22
23
#include <boost/shared_ptr.hpp>
2173.2.1 by Monty Taylor
Fixes incorrect usage of include
24
#include <drizzled/identifier/catalog.h>
25
#include <drizzled/message/catalog.h>
1960.1.6 by Brian Aker
Adding in the engine interface. The filesystem catalog will now handle
26
27
namespace drizzled {
28
namespace catalog {
29
30
class Engine
31
{
32
public:
33
  typedef boost::shared_ptr<Engine> shared_ptr;
34
  typedef std::vector<shared_ptr> vector;
35
2104.1.3 by Brian Aker
Fix interface such that no one will mistake it for something they should
36
protected:
37
  friend class drizzled::plugin::Catalog;
38
1960.1.6 by Brian Aker
Adding in the engine interface. The filesystem catalog will now handle
39
  Engine()
40
  { };
41
42
  virtual ~Engine()
43
  { };
44
45
  // DDL
2246.4.8 by Olaf van der Spek
Remove const_reference and reference from identifier::Catalog
46
  virtual bool create(const identifier::Catalog& , message::catalog::shared_ptr &)= 0;
47
  virtual bool drop(const identifier::Catalog&)= 0;
1960.1.6 by Brian Aker
Adding in the engine interface. The filesystem catalog will now handle
48
49
  // Get Meta information
2246.4.8 by Olaf van der Spek
Remove const_reference and reference from identifier::Catalog
50
  virtual bool exist(const identifier::Catalog& identifier)= 0;
2252.1.9 by Olaf van der Spek
Common fwd
51
  virtual void getIdentifiers(identifier::catalog::vector &identifiers)= 0;
2246.4.8 by Olaf van der Spek
Remove const_reference and reference from identifier::Catalog
52
  virtual message::catalog::shared_ptr getMessage(const identifier::Catalog&)= 0;
1960.1.6 by Brian Aker
Adding in the engine interface. The filesystem catalog will now handle
53
  virtual void getMessages(message::catalog::vector &messages)= 0;
54
};
55
56
} /* namespace catalog */
57
} /* namespace drizzled */
58