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
PDBCommWork.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: PDBCommWork.h
20  * Author: Chris
21  *
22  * Created on September 25, 2015, 5:13 PM
23  */
24 
25 #ifndef PDBCOMMWORK_H
26 #define PDBCOMMWORK_H
27 
28 #include <memory>
29 #include "PDBWork.h"
30 
31 // "Comm" here stands for communication; so this object encapsulates some work that
32 // requires communicating via a socket (ether over the internet, or locally, via a
33 // UNIX socket
34 
35 namespace pdb {
36 
38 typedef std::shared_ptr<PDBCommWork> PDBCommWorkPtr;
39 }
40 // create a smart pointer for PDBCommWork objects
41 #include <pthread.h>
42 #include <string>
43 #include "PDBCommunicator.h"
44 
45 namespace pdb {
46 
47 class PDBCommWork : public PDBWork {
48 public:
49  // gets a new worker of this type and returns it
50  virtual PDBCommWorkPtr clone() = 0;
51 
52  // accesses the communicator buried in this guy
54 
55  // sets the logger and the commuicator
56  void setGuts(PDBCommunicatorPtr toMe);
57 
58  // inherited from PDBWork
59  // ********************************
60  // virtual void execute (PDBBuzzerPtr callerBuzzer);
61  // void execute (PDBWorker useMe, PDBBuzzerPtr callerBuzzer);
62  // PDBWorkerPtr getWorker ();
63  // PDBBuzzerPtr getLinkedBuzzer ();
64 
65 
66 private:
67  // this is responsible for talking over the network
69 };
70 }
71 
72 #endif /* PDBCOMMWORK_H */
PDBCommunicatorPtr getCommunicator()
Definition: PDBCommWork.cc:28
void setGuts(PDBCommunicatorPtr toMe)
Definition: PDBCommWork.cc:32
std::shared_ptr< PDBCommunicator > PDBCommunicatorPtr
std::shared_ptr< PDBCommWork > PDBCommWorkPtr
Definition: PDBCommWork.h:37
virtual PDBCommWorkPtr clone()=0
PDBCommunicatorPtr myCommunicator
Definition: PDBCommWork.h:68