public static RpcConfig getMapping(SabotConfig config, Executor executor, Optional<SSLConfig> sslConfig) {
return RpcConfig.newBuilder()
.name("USER")
.timeout(config.getInt(ExecConstants.USER_RPC_TIMEOUT))
.executor(executor)
.sslConfig(sslConfig)
.add(RpcType.HANDSHAKE, UserToBitHandshake.class, RpcType.HANDSHAKE, BitToUserHandshake.class)
.add(RpcType.RUN_QUERY, RunQuery.class, RpcType.QUERY_HANDLE, QueryId.class)
.add(RpcType.CANCEL_QUERY, QueryId.class, RpcType.ACK, Ack.class)
.add(RpcType.QUERY_DATA, QueryData.class, RpcType.ACK, Ack.class)
.add(RpcType.QUERY_RESULT, QueryResult.class, RpcType.ACK, Ack.class)
.add(RpcType.RESUME_PAUSED_QUERY, QueryId.class, RpcType.ACK, Ack.class)
.add(RpcType.GET_QUERY_PLAN_FRAGMENTS, GetQueryPlanFragments.class,
RpcType.QUERY_PLAN_FRAGMENTS, QueryPlanFragments.class)
.add(RpcType.GET_CATALOGS, GetCatalogsReq.class, RpcType.CATALOGS, GetCatalogsResp.class)
.add(RpcType.GET_SCHEMAS, GetSchemasReq.class, RpcType.SCHEMAS, GetSchemasResp.class)
.add(RpcType.GET_TABLES, GetTablesReq.class, RpcType.TABLES, GetTablesResp.class)
.add(RpcType.GET_COLUMNS, GetColumnsReq.class, RpcType.COLUMNS, GetColumnsResp.class)
.add(RpcType.CREATE_PREPARED_STATEMENT, CreatePreparedStatementReq.class,
RpcType.PREPARED_STATEMENT, CreatePreparedStatementResp.class)
.add(RpcType.GET_SERVER_META, GetServerMetaReq.class, RpcType.SERVER_META, GetServerMetaResp.class)
.build();
}