(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{595:function(e,t,a){"use strict";a.r(t);var i=a(69),r=Object(i.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h2",{attrs:{id:"rpc-definition-file"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rpc-definition-file"}},[e._v("#")]),e._v(" Rpc definition file")]),e._v(" "),a("p",[e._v("We use thrift rpc between client and server, the definition file is :")]),e._v(" "),a("p",[e._v("thrift/src/main/thrift/rpc.thrift")]),e._v(" "),a("p",[e._v("You can add struct and corresponding method in TSIService (service)")]),e._v(" "),a("h2",{attrs:{id:"code-generation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#code-generation"}},[e._v("#")]),e._v(" Code generation")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("mvn clean compile -pl service-rpc -am -DskipTests\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("or")]),e._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("mvn clean compile -pl thrift\n")])]),e._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[e._v("1")]),a("br")])]),a("p",[e._v("Generated codes:")]),e._v(" "),a("p",[e._v("thrift/target/generated-sources/thrift/org/apache/iotdb/service/rpc/thrift")]),e._v(" "),a("h2",{attrs:{id:"implement-the-new-interface"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implement-the-new-interface"}},[e._v("#")]),e._v(" Implement the new interface")]),e._v(" "),a("p",[e._v("java client is in Session:")]),e._v(" "),a("p",[e._v("session/src/main/java/org/apache/iotdb/session/Session.java")]),e._v(" "),a("p",[e._v("Rpc service implementation is:")]),e._v(" "),a("p",[e._v("server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java")])])}),[],!1,null,null,null);t.default=r.exports}}]);