A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
ServerFunctionality.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* *
3
* Copyright 2018 Rice University *
4
* *
5
* Licensed under the Apache License, Version 2.0 (the "License"); *
6
* you may not use this file except in compliance with the License. *
7
* You may obtain a copy of the License at *
8
* *
9
* http://www.apache.org/licenses/LICENSE-2.0 *
10
* *
11
* Unless required by applicable law or agreed to in writing, software *
12
* distributed under the License is distributed on an "AS IS" BASIS, *
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
14
* See the License for the specific language governing permissions and *
15
* limitations under the License. *
16
* *
17
*****************************************************************************/
18
19
#ifndef SERVER_FUNCT_H
20
#define SERVER_FUNCT_H
21
22
#include "
PDBServer.h
"
23
24
namespace
pdb {
25
26
// this pure virtual class encapsulates some particular server functionality (catalog client,
27
// catalog server, storage server, etc.).
28
class
ServerFunctionality
{
29
30
public
:
31
// registers any particular handlers that this server needs
32
virtual
void
registerHandlers
(
PDBServer
& forMe) = 0;
33
34
// added by Jia, it will be invoked when PDBServer is to be shutdown
35
virtual
void
cleanup
() {}
36
37
// access a particular functionality on the attached server
38
template
<
class
Functionality>
39
Functionality&
getFunctionality
() {
40
return
parent
->
getFunctionality
<Functionality>();
41
}
42
43
// remember the server this is attached to
44
void
recordServer
(
PDBServer
& recordMe) {
45
parent
= &recordMe;
46
}
47
48
PDBWorkerPtr
getWorker
() {
49
return
parent
->
getWorkerQueue
()->getWorker();
50
}
51
52
PDBLoggerPtr
getLogger
() {
53
return
parent
->
getLogger
();
54
}
55
56
57
private
:
58
PDBServer
*
parent
;
59
};
60
}
61
62
#endif
pdb::ServerFunctionality::getLogger
PDBLoggerPtr getLogger()
Definition:
ServerFunctionality.h:52
pdb::ServerFunctionality::cleanup
virtual void cleanup()
Definition:
ServerFunctionality.h:35
pdb::ServerFunctionality::getFunctionality
Functionality & getFunctionality()
Definition:
ServerFunctionality.h:39
pdb::ServerFunctionality::registerHandlers
virtual void registerHandlers(PDBServer &forMe)=0
pdb::ServerFunctionality::recordServer
void recordServer(PDBServer &recordMe)
Definition:
ServerFunctionality.h:44
pdb::PDBServer::getLogger
PDBLoggerPtr getLogger()
Definition:
PDBServer.cc:233
pdb::PDBServer::getWorkerQueue
PDBWorkerQueuePtr getWorkerQueue()
Definition:
PDBServer.cc:228
pdb::ServerFunctionality::parent
PDBServer * parent
Definition:
ServerFunctionality.h:58
pdb::PDBWorkerPtr
shared_ptr< PDBWorker > PDBWorkerPtr
Definition:
PDBWorker.h:40
PDBServer.h
pdb::PDBLoggerPtr
std::shared_ptr< PDBLogger > PDBLoggerPtr
Definition:
PDBLogger.h:40
pdb::PDBServer::getFunctionality
Functionality & getFunctionality()
Definition:
ServerTemplates.cc:49
pdb::ServerFunctionality::getWorker
PDBWorkerPtr getWorker()
Definition:
ServerFunctionality.h:48
pdb::ServerFunctionality
Definition:
ServerFunctionality.h:28
pdb::PDBServer
Definition:
PDBServer.h:56
plinycompute
pdb
src
pdbServer
headers
ServerFunctionality.h
Generated on Mon Jun 18 2018 18:10:36 by
1.8.6