]> git.sesse.net Git - stockfish/blobdiff - src/hashprobe.h
Move the hash probe class definition into a header file.
[stockfish] / src / hashprobe.h
diff --git a/src/hashprobe.h b/src/hashprobe.h
new file mode 100644 (file)
index 0000000..4d0afec
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef HASHPROBE_H_INCLUDED
+#define HASHPROBE_H_INCLUDED
+
+#include "types.h"
+
+#include <stack>
+#include <string>
+
+#include <grpc/grpc.h>
+#include <grpc++/server.h>
+#include <grpc++/server_builder.h>
+#include "hashprobe.grpc.pb.h"
+
+class HashProbeImpl final : public hashprobe::HashProbe::Service {
+public:
+       grpc::Status Probe(grpc::ServerContext* context,
+                          const hashprobe::HashProbeRequest* request,
+                          hashprobe::HashProbeResponse *response);
+
+private:
+       void FillMove(Move move, hashprobe::HashProbeMove* decoded);
+       void ProbeMove(Position* pos, std::stack<StateInfo>* setup_states, bool invert, hashprobe::HashProbeLine* response);
+       void FillValue(Value value, hashprobe::HashProbeScore* score);
+};
+
+class HashProbeThread {
+public:
+       HashProbeThread(const std::string &server_address);
+       void Shutdown();
+
+private:
+       HashProbeImpl service;
+       grpc::ServerBuilder builder;
+       std::unique_ptr<grpc::Server> server;
+};
+
+#endif