libfoedus-core
FOEDUS Core Library
storage_log_types.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-2015, Hewlett-Packard Development Company, LP.
3  * This program is free software; you can redistribute it and/or modify it
4  * under the terms of the GNU General Public License as published by the Free
5  * Software Foundation; either version 2 of the License, or (at your option)
6  * any later version.
7  *
8  * This program is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11  * more details. You should have received a copy of the GNU General Public
12  * License along with this program; if not, write to the Free Software
13  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14  *
15  * HP designates this particular file as subject to the "Classpath" exception
16  * as provided by HP in the LICENSE.txt file that accompanied this code.
17  */
18 #ifndef FOEDUS_STORAGE_STORAGE_LOG_TYPES_HPP_
19 #define FOEDUS_STORAGE_STORAGE_LOG_TYPES_HPP_
20 #include <stdint.h>
21 
22 #include <iosfwd>
23 
27 #include "foedus/thread/fwd.hpp"
28 #include "foedus/xct/fwd.hpp"
29 
35 namespace foedus {
36 namespace storage {
48 
49  void populate(StorageId storage_id);
50  void apply_storage(Engine* engine, StorageId storage_id);
51  void assert_valid();
52  friend std::ostream& operator<<(std::ostream& o, const DropLogType& v);
53 };
54 
66 
67  void apply_storage(Engine* engine, StorageId storage_id);
68  void assert_valid();
69  friend std::ostream& operator<<(std::ostream& o, const CreateLogType& v);
70 };
71 
72 
73 } // namespace storage
74 } // namespace foedus
75 #endif // FOEDUS_STORAGE_STORAGE_LOG_TYPES_HPP_
Log type of DROP STORAGE operation.
friend std::ostream & operator<<(std::ostream &o, const DropLogType &v)
Base class for log type of storage-wide operation.
void populate(StorageId storage_id)
Definitions of IDs in this package and a few related constant values.
uint32_t StorageId
Unique ID for storage.
Definition: storage_id.hpp:55
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Definition: assert_nd.hpp:44
Forward declarations of classes in transaction package.
STL namespace.
Declares common log types used in all packages.
Metadata of one storage.
Definition: metadata.hpp:58
#define CXX11_FINAL
Used in public headers in place of "final" of C++11.
Definition: cxx11.hpp:131
Database engine object that holds all resources and provides APIs.
Definition: engine.hpp:109
#define LOG_TYPE_NO_CONSTRUCT(clazz)
Macro to delete all constructors/destructors to prevent misuse for log type classes.
Base type for CREATE STORAGE operation.
Forward declarations of classes in thread package.
void apply_storage(Engine *engine, StorageId storage_id)
void apply_storage(Engine *engine, StorageId storage_id)