44 std::string addressIn,
47 :
myHelper(portIn, addressIn, myLoggerIn) {
51 runUs = makeObject<Vector<Handle<QueryBase>>>();
52 queryGraph = makeObject<Vector<Handle<Computation>>>();
72 std::cout <<
"I was not able to obtain the type for database set " << setName <<
"\n";
73 myLogger->error(
"query client: not able to verify type: " + errMsg);
78 if (typeName != getTypeName<Type>()) {
79 std::cout <<
"Wrong type for database set " << setName <<
"\n";
98 myLogger->error(
"query client: not able to verify type: " + errMsg);
116 bool deleteSet(std::string databaseName, std::string setName) {
118 return simpleRequest<DeleteSet, SimpleRequestResult, bool, String, String>(
126 if (result !=
nullptr) {
129 if (!result->getRes().first) {
130 errMsg =
"Could not remove set: " + result->getRes().second;
131 myLogger->error(
"QueryErr: " + errMsg);
137 errMsg =
"Error getting type name: got nothing back from catalog";
148 std::cout <<
"query graph size = " << this->
queryGraph->size() << std::endl;
164 std::pair<std::string, std::string> outputDatabaseAndSet,
171 std::cout <<
"to register Replica at query cient: " << computations.size() <<
" computations" << std::endl;
172 return simpleRequest<RegisterReplica, SimpleRequestResult, bool>(
179 if (result !=
nullptr) {
180 if (!result->getRes().first) {
181 errMsg =
"Error in query: " + result->getRes().second;
182 myLogger->error(
"Error querying data: " + result->getRes().second);
187 errMsg =
"Error getting type name: got nothing back from server";
191 outputDatabaseAndSet,
203 template <
class... Types>
215 std::vector<Handle<Computation>> computations;
216 std::string tcapString =
getTCAP(computations);
223 std::string tcapString,
227 makeObject<Vector<Handle<Computation>>>();
228 for (
size_t i = 0; i < computations.size(); i++) {
229 computationsToSend->push_back(computations[i]);
248 if (result !=
nullptr) {
249 if (!result->getRes().first) {
250 errMsg =
"Error in query: " + result->getRes().second;
251 myLogger->error(
"Error querying data: " + result->getRes().second);
254 this->
queryGraph = makeObject<Vector<Handle<Computation>>>();
257 errMsg =
"Error getting type name: got nothing back from server";
258 this->
queryGraph = makeObject<Vector<Handle<Computation>>>();
269 "This query must be sent to QuerySchedulerServer, but it seems "
270 "QuerySchedulerServer is not supported";
271 this->
queryGraph = makeObject<Vector<Handle<Computation>>>();
274 this->
queryGraph = makeObject<Vector<Handle<Computation>>>();
Handle< Vector< Handle< QueryBase > > > runUs
Handle< Vector< Handle< Computation > > > queryGraph
void setQueryGraph(Handle< Computation > querySink)
bool registerReplica(std::pair< std::string, std::string > inputDatabaseAndSet, std::pair< std::string, std::string > outputDatabaseAndSet, int numPartitions, int numNodes, std::string type, std::string tcap, std::vector< Handle< Computation >> computations)
void setUseScheduler(bool useScheduler)
std::string getObjectType(std::string databaseName, std::string setName, std::string &errMsg)
bool executeComputations(std::string &errMsg, Handle< Computation > firstParam, Handle< Types >...args)
bool executeComputations(std::string &errMsg)
QueryClient(int portIn, std::string addressIn, PDBLoggerPtr myLoggerIn, bool useScheduler=false)
std::string getTCAP(std::vector< Handle< Computation >> &computations)
bool deleteSet(std::string databaseName, std::string setName)
void parseComputations(std::vector< Handle< Computation >> &computations, Handle< Computation > sink)
ReturnType simpleDoubleRequest(PDBLoggerPtr myLogger, int port, std::string address, ReturnType onErr, size_t bytesForRequest, function< ReturnType(Handle< ResponseType >)> processResponse, Handle< RequestType > &firstRequest, Handle< SecondRequestType > &secondRequest)
std::string parseTCAPString()
std::shared_ptr< PDBLogger > PDBLoggerPtr
bool executeComputations(std::string &errMsg, std::string tcapString, std::vector< Handle< Computation >> computations)
SetIterator< Type > getSetIterator(std::string databaseName, std::string setName)
Handle< Set< Type > > getSet(std::string databaseName, std::string setName)