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.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ServerWork.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  * File: ServerWork.h
20  * Author: Chris
21  *
22  * Created on September 25, 2015, 5:05 PM
23  */
24 
25 #ifndef SERVERWORK_H
26 #define SERVERWORK_H
27 
28 
29 #include "PDBBuzzer.h"
30 #include "PDBCommWork.h"
31 #include "PDBServer.h"
32 
33 namespace pdb {
34 
35 #include <memory>
36 class ServerWork;
37 typedef shared_ptr<ServerWork> ServerWorkPtr;
38 
39 // does all of the work associated with one connection to the server
40 
41 class ServerWork : public PDBCommWork {
42 public:
43  // specify the server we are working on
45 
46  // do the actual work
47  void execute(PDBBuzzerPtr callerBuzzer) override;
48 
49  // error handler
50  void handleError();
51 
52  // clone this guy
53  PDBCommWorkPtr clone() override;
54 
55  // get buzzer linked to this guy
56  PDBBuzzerPtr getLinkedBuzzer() override;
57 
58 private:
59  // calling handleError sets this to true
60  bool wasEnError;
61 
62  // the server we are doing the work for
64 };
65 }
66 
67 #endif /* SERVERWORK_H */
PDBCommWorkPtr clone() override
Definition: ServerWork.cc:30
shared_ptr< ServerWork > ServerWorkPtr
Definition: ServerWork.h:36
void handleError()
Definition: ServerWork.cc:35
shared_ptr< PDBBuzzer > PDBBuzzerPtr
Definition: PDBBuzzer.h:32
void execute(PDBBuzzerPtr callerBuzzer) override
Definition: ServerWork.cc:44
PDBBuzzerPtr getLinkedBuzzer() override
Definition: ServerWork.cc:40
ServerWork(PDBServer &workOnMe)
Definition: ServerWork.cc:26
std::shared_ptr< PDBCommWork > PDBCommWorkPtr
Definition: PDBCommWork.h:37
PDBServer & workOnMe
Definition: ServerWork.h:63