Loading...
Searching...
No Matches
transaction_manager.h
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one
3
* or more contributor license agreements. See the NOTICE file
4
* distributed with this work for additional information
5
* regarding copyright ownership. The ASF licenses this file
6
* to you under the Apache License, Version 2.0 (the
7
* "License"); you may not use this file except in compliance
8
* with the License. You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing,
13
* software distributed under the License is distributed on an
14
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
* KIND, either express or implied. See the License for the
16
* specific language governing permissions and limitations
17
* under the License.
18
*/
19
20
#pragma once
21
22
#include <memory>
23
24
#include "
chain/storage/storage.h
"
25
#include "platform/proto/resdb.pb.h"
26
27
namespace
resdb
{
28
29
/*
30
* TransactionManager is an interface to manager the transactions that have been
31
* committed by the replicas. ExecuteData will be called inside ExecuteBatch to
32
* execute each transaction. One of the interface ExecuteBatch or ExecuteData
33
* should be implemented, but not both.
34
*/
35
class
TransactionManager
{
36
public
:
37
TransactionManager
(
bool
is_out_of_order =
false
,
bool
need_response =
true
);
38
virtual
~TransactionManager
() =
default
;
39
40
virtual
std::unique_ptr<BatchUserResponse>
ExecuteBatch
(
41
const
BatchUserRequest& request);
42
43
virtual
std::unique_ptr<std::string>
ExecuteData
(
const
std::string& request);
44
45
bool
IsOutOfOrder
();
46
47
bool
NeedResponse
();
48
49
virtual
Storage
*
GetStorage
() {
return
nullptr
; };
50
51
private
:
52
bool
is_out_of_order_ =
false
;
53
bool
need_response_ =
true
;
54
};
55
56
}
// namespace resdb
resdb::Storage
Definition
storage.h:28
resdb::TransactionManager
Definition
transaction_manager.h:35
resdb::TransactionManager::ExecuteBatch
virtual std::unique_ptr< BatchUserResponse > ExecuteBatch(const BatchUserRequest &request)
Definition
transaction_manager.cpp:38
resdb::TransactionManager::GetStorage
virtual Storage * GetStorage()
Definition
transaction_manager.h:49
resdb::TransactionManager::NeedResponse
bool NeedResponse()
Definition
transaction_manager.cpp:31
resdb::TransactionManager::~TransactionManager
virtual ~TransactionManager()=default
resdb::TransactionManager::ExecuteData
virtual std::unique_ptr< std::string > ExecuteData(const std::string &request)
Definition
transaction_manager.cpp:33
resdb::TransactionManager::IsOutOfOrder
bool IsOutOfOrder()
Definition
transaction_manager.cpp:29
resdb
Definition
chain_state.cpp:24
storage.h
executor
common
transaction_manager.h
Generated by
1.9.8