Yes. NetworkCliClient is quite standalone. The dependencies are: ---- (1) #include <grpc++/grpc++.h> (2) #include "cli/NetworkCli.grpc.pb.h" (3) #include "cli/NetworkCli.pb.h" (4) #include "utility/Macros.hpp" ----
To write your own client: ---- (A) Setup grpc so that you can include the header files and link to it. (B) Grab NetworkCli.proto (https://github.com/apache/ incubator-quickstep/blob/master/cli/NetworkCli.proto), change the package name if necessary (originally quickstep). Either (B.1) use grpc/protobuf tools to compile NetworkCli.proto to generate (2) and (3) -- see https://github.com/apache/incubator-quickstep/blob/ master/cli/CMakeLists.txt#L53 or (B.2) compile quickstep and grab the files from build/cli/ (C) Copy the NetworkCliClient class from QS into your client code. ---- (A)/(B) may be somehow annoying to handle as you need to search through various documentations ... Best, Jianqiao 2017-11-30 17:07 GMT-06:00 Dylan Bacon <dba...@wisc.edu>: > So NetworkCliClient should be something I'm able to include in my program > along with the appropriate dependencies and use as the API? I was thinking > about needing to do that but I wasn't sure if that was a standalone API QS > has implemented or a core part of the system. Unless I'm being mistaken and > you're talking about something from gRPC. This is my first time working > with it. > > > > On 11/30/17 4:58 PM, Jianqiao wrote: > >> Hi Dylan, >> >> Currently the network mode is using gRPC, so you probably need to use the >> corresponding API (see >> https://github.com/apache/incubator-quickstep/blob/master/ >> cli/NetworkCliClientMain.cpp#L42 >> as an example). The raw socket connection won't work unless you hack >> gRPC's >> message exchange protocol .. >> >> Best, >> Jianqiao >> >> 2017-11-30 16:49 GMT-06:00 Dylan Bacon <dba...@wisc.edu>: >> >> Hello, >>> >>> I am attempting to interface with Quickstep using its NetworkCliClient >>> and >>> it's not working as I would expect. I have the default port and IP set to >>> 3000 and 0.0.0.0 and am attempting to send single queries to be processed >>> over in my test harness. From what I could tell of the code when QS is in >>> network mode it accepts a socket connection and string input from that >>> function and processes it in NetworkCliClient.hpp and >>> NetworkCliClientMain.cpp, and yet this is not happening with my test >>> code. >>> The connection is being established but Quickstep does not seem to be >>> doing >>> anything with the queries that come in. >>> >>> Attached is the test code that I am using. test is just a table by that >>> name, I'm selecting a literal from it so the contents shouldn't matter. >>> I've also attempted to create a table with this but Quickstep did not >>> process that. >>> >>> -- >>> Regards, >>> >>> Dylan Bacon >>> University of Wisconsin - Madison >>> Department of Computer Sciences >>> dba...@wisc.edu >>> >>> >>> >