remove pre-build proto/grpc files (they differ for each platform and proto/grpc version)
This commit is contained in:
1 parent
12409f1118
commit
5164f2f9a7
17 files changed
+48
-39063
No files matched your search
+7
-6
@@ -179,7 +179,7 @@
|
|||||||
end
|
end
|
||||||
|
|
||||||
includedirs {
|
includedirs {
|
||||||
projectRootDir .. "examples/SharedMemory", _OPTIONS["grpc_include_dir"], _OPTIONS["protobuf_include_dir"],
|
projectRootDir .. "examples", _OPTIONS["grpc_include_dir"], _OPTIONS["protobuf_include_dir"],
|
||||||
}
|
}
|
||||||
|
|
||||||
if os.is("Windows") then
|
if os.is("Windows") then
|
||||||
@@ -198,12 +198,13 @@
|
|||||||
end
|
end
|
||||||
|
|
||||||
links { "grpc","grpc++", "grpc++_reflection", "gpr", "protobuf"}
|
links { "grpc","grpc++", "grpc++_reflection", "gpr", "protobuf"}
|
||||||
files { projectRootDir .. "examples/SharedMemory/grpc/ConvertGRPCBullet.cpp",
|
files {
|
||||||
|
projectRootDir .. "examples/SharedMemory/grpc/ConvertGRPCBullet.cpp",
|
||||||
projectRootDir .. "examples/SharedMemory/grpc/ConvertGRPCBullet.h",
|
projectRootDir .. "examples/SharedMemory/grpc/ConvertGRPCBullet.h",
|
||||||
projectRootDir .. "examples/SharedMemory/grpc/pybullet.grpc.pb.cpp",
|
projectRootDir .. "examples/SharedMemory/grpc/proto/pybullet.grpc.pb.cpp",
|
||||||
projectRootDir .. "examples/SharedMemory/grpc/pybullet.grpc.pb.h",
|
projectRootDir .. "examples/SharedMemory/grpc/proto/pybullet.grpc.pb.h",
|
||||||
projectRootDir .. "examples/SharedMemory/grpc/pybullet.pb.cpp",
|
projectRootDir .. "examples/SharedMemory/grpc/proto/pybullet.pb.cpp",
|
||||||
projectRootDir .. "examples/SharedMemory/grpc/pybullet.pb.h", }
|
projectRootDir .. "examples/SharedMemory/grpc/proto/pybullet.pb.h", }
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
struct CommandProcessorCreationInterface
|
struct CommandProcessorCreationInterface
|
||||||
{
|
{
|
||||||
|
virtual ~CommandProcessorCreationInterface() {}
|
||||||
virtual class CommandProcessorInterface* createCommandProcessor()=0;
|
virtual class CommandProcessorInterface* createCommandProcessor()=0;
|
||||||
virtual void deleteCommandProcessor(CommandProcessorInterface*)=0;
|
virtual void deleteCommandProcessor(CommandProcessorInterface*)=0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
struct MJCFErrorLogger
|
struct MJCFErrorLogger
|
||||||
{
|
{
|
||||||
|
virtual ~MJCFErrorLogger() {}
|
||||||
virtual void reportError(const char* error)=0;
|
virtual void reportError(const char* error)=0;
|
||||||
virtual void reportWarning(const char* warning)=0;
|
virtual void reportWarning(const char* warning)=0;
|
||||||
virtual void printMessage(const char* msg)=0;
|
virtual void printMessage(const char* msg)=0;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
struct ErrorLogger
|
struct ErrorLogger
|
||||||
{
|
{
|
||||||
|
virtual ~ErrorLogger(){}
|
||||||
virtual void reportError(const char* error)=0;
|
virtual void reportError(const char* error)=0;
|
||||||
virtual void reportWarning(const char* warning)=0;
|
virtual void reportWarning(const char* warning)=0;
|
||||||
virtual void printMessage(const char* msg)=0;
|
virtual void printMessage(const char* msg)=0;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class btTransform;
|
|||||||
///bullet3\examples\SharedMemory\plugins\tinyRendererPlugin\TinyRendererVisualShapeConverter.cpp
|
///bullet3\examples\SharedMemory\plugins\tinyRendererPlugin\TinyRendererVisualShapeConverter.cpp
|
||||||
struct UrdfRenderingInterface
|
struct UrdfRenderingInterface
|
||||||
{
|
{
|
||||||
|
virtual ~UrdfRenderingInterface() {}
|
||||||
///given a URDF link, convert all visual shapes into internal renderer (loading graphics meshes, textures etc)
|
///given a URDF link, convert all visual shapes into internal renderer (loading graphics meshes, textures etc)
|
||||||
///use the collisionObjectUid as a unique identifier to synchronize the world transform and to remove the visual shape.
|
///use the collisionObjectUid as a unique identifier to synchronize the world transform and to remove the visual shape.
|
||||||
virtual void convertVisualShapes(int linkIndex, const char* pathPrefix, const btTransform& localInertiaFrame, const UrdfLink* linkPtr, const UrdfModel* model, int collisionObjectUid, int bodyUniqueId) =0;
|
virtual void convertVisualShapes(int linkIndex, const char* pathPrefix, const btTransform& localInertiaFrame, const UrdfLink* linkPtr, const UrdfModel* model, int collisionObjectUid, int bodyUniqueId) =0;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#ifdef BT_ENABLE_GRPC
|
#ifdef BT_ENABLE_GRPC
|
||||||
#include "PhysicsClientGRPC.h"
|
#include "PhysicsClientGRPC.h"
|
||||||
#include "grpc/pybullet.grpc.pb.h"
|
#include "SharedMemory/grpc/proto/pybullet.grpc.pb.h"
|
||||||
#include <grpc++/grpc++.h>
|
#include <grpc++/grpc++.h>
|
||||||
using grpc::Channel;
|
using grpc::Channel;
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -12,8 +12,9 @@ using grpc::Channel;
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include "Bullet3Common/b3Logging.h"
|
#include "Bullet3Common/b3Logging.h"
|
||||||
#include "Bullet3Common/b3AlignedObjectArray.h"
|
#include "Bullet3Common/b3AlignedObjectArray.h"
|
||||||
#include "grpc/ConvertGRPCBullet.h"
|
#include "SharedMemory/grpc/ConvertGRPCBullet.h"
|
||||||
|
|
||||||
|
using pybullet_grpc::PyBulletAPI;
|
||||||
|
|
||||||
static unsigned int b3DeserializeInt2(const unsigned char* input)
|
static unsigned int b3DeserializeInt2(const unsigned char* input)
|
||||||
{
|
{
|
||||||
@@ -27,7 +28,7 @@ bool gVerboseNetworkMessagesClient3 = false;
|
|||||||
struct GRPCNetworkedInternalData
|
struct GRPCNetworkedInternalData
|
||||||
{
|
{
|
||||||
std::shared_ptr<grpc::Channel> m_grpcChannel;
|
std::shared_ptr<grpc::Channel> m_grpcChannel;
|
||||||
std::unique_ptr< pybullet_grpc::PyBulletAPI::Stub> m_stub;
|
std::unique_ptr< PyBulletAPI::Stub> m_stub;
|
||||||
|
|
||||||
|
|
||||||
bool m_isConnected;
|
bool m_isConnected;
|
||||||
@@ -70,7 +71,7 @@ struct GRPCNetworkedInternalData
|
|||||||
m_grpcChannel = grpc::CreateChannel(
|
m_grpcChannel = grpc::CreateChannel(
|
||||||
hostport, grpc::InsecureChannelCredentials());
|
hostport, grpc::InsecureChannelCredentials());
|
||||||
|
|
||||||
m_stub = pybullet_grpc::PyBulletAPI::NewStub(m_grpcChannel);
|
m_stub = PyBulletAPI::NewStub(m_grpcChannel);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
#include "ConvertGRPCBullet.h"
|
#include "ConvertGRPCBullet.h"
|
||||||
#include "PhysicsClientC_API.h"
|
#include "SharedMemory/PhysicsClientC_API.h"
|
||||||
#include "SharedMemoryCommands.h"
|
#include "SharedMemory/SharedMemoryCommands.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <grpc++/grpc++.h>
|
#include <grpc++/grpc++.h>
|
||||||
#include <grpc/support/log.h>
|
#include <grpc/support/log.h>
|
||||||
#include "pybullet.grpc.pb.h"
|
#include "SharedMemory/grpc/proto/pybullet.grpc.pb.h"
|
||||||
#include "LinearMath/btMinMax.h"
|
#include "LinearMath/btMinMax.h"
|
||||||
|
|
||||||
#define ALLOW_GRPC_COMMAND_CONVERSION
|
#define ALLOW_GRPC_COMMAND_CONVERSION
|
||||||
@@ -21,7 +21,6 @@ using grpc::ServerCompletionQueue;
|
|||||||
using grpc::Status;
|
using grpc::Status;
|
||||||
using pybullet_grpc::PyBulletCommand;
|
using pybullet_grpc::PyBulletCommand;
|
||||||
using pybullet_grpc::PyBulletStatus;
|
using pybullet_grpc::PyBulletStatus;
|
||||||
using pybullet_grpc::PyBulletAPI;
|
|
||||||
|
|
||||||
pybullet_grpc::PyBulletCommand* convertBulletToGRPCCommand(const struct SharedMemoryCommand& clientCmd, pybullet_grpc::PyBulletCommand& grpcCommand)
|
pybullet_grpc::PyBulletCommand* convertBulletToGRPCCommand(const struct SharedMemoryCommand& clientCmd, pybullet_grpc::PyBulletCommand& grpcCommand)
|
||||||
{
|
{
|
||||||
@@ -472,7 +471,7 @@ pybullet_grpc::PyBulletCommand* convertBulletToGRPCCommand(const struct SharedMe
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
printf("convertBulletToGRPCCommand: Unknown command\n");
|
//printf("convertBulletToGRPCCommand: Unknown command\n");
|
||||||
//assert(0);
|
//assert(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -568,7 +567,7 @@ SharedMemoryCommand* convertGRPCToBulletCommand(const PyBulletCommand& grpcComma
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("Ignore unexpected unknowncommandbinaryblob\n");
|
printf("Error: Ignore unexpected unknowncommandbinaryblob\n");
|
||||||
}
|
}
|
||||||
cmdPtr = &cmd;
|
cmdPtr = &cmd;
|
||||||
}
|
}
|
||||||
@@ -1276,7 +1275,7 @@ bool convertGRPCToStatus(const PyBulletStatus& grpcReply, SharedMemoryStatus& se
|
|||||||
|
|
||||||
const char* data = grpcReply.binaryblob().Get(0).c_str();
|
const char* data = grpcReply.binaryblob().Get(0).c_str();
|
||||||
int numBytes = grpcReply.binaryblob().Get(0).size();
|
int numBytes = grpcReply.binaryblob().Get(0).size();
|
||||||
printf("copied binary blob of %d bytes\n", numBytes);
|
//printf("copied binary blob of %d bytes\n", numBytes);
|
||||||
memcpy(bufferServerToClient, data, numBytes);
|
memcpy(bufferServerToClient, data, numBytes);
|
||||||
serverStatus.m_numDataStreamBytes = numBytes;
|
serverStatus.m_numDataStreamBytes = numBytes;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ typedef SharedMemoryCommandProcessor MyCommandProcessor;
|
|||||||
#include <grpc++/grpc++.h>
|
#include <grpc++/grpc++.h>
|
||||||
#include <grpc/support/log.h>
|
#include <grpc/support/log.h>
|
||||||
|
|
||||||
#include "pybullet.grpc.pb.h"
|
#include "proto/pybullet.grpc.pb.h"
|
||||||
|
|
||||||
|
|
||||||
using grpc::Server;
|
using grpc::Server;
|
||||||
@@ -67,7 +67,7 @@ public:
|
|||||||
cq_ = builder.AddCompletionQueue();
|
cq_ = builder.AddCompletionQueue();
|
||||||
// Finally assemble the server.
|
// Finally assemble the server.
|
||||||
server_ = builder.BuildAndStart();
|
server_ = builder.BuildAndStart();
|
||||||
std::cout << "Server listening on " << hostNamePort << std::endl;
|
std::cout << "Standalone Bullet Physics GRPC server listening on " << hostNamePort << std::endl;
|
||||||
|
|
||||||
// Proceed to the server's main loop.
|
// Proceed to the server's main loop.
|
||||||
HandleRpcs(comProc);
|
HandleRpcs(comProc);
|
||||||
|
|||||||
@@ -1,19 +1,13 @@
|
|||||||
del ..\pybullet.pb.cpp
|
del pybullet.pb.cpp
|
||||||
del ..\pybullet.pb.h
|
del pybullet.pb.h
|
||||||
del ..\pybullet.grpc.pb.cpp
|
del pybullet.grpc.pb.cpp
|
||||||
del ..\pybullet.grpc.pb.h
|
del pybullet.grpc.pb.h
|
||||||
|
|
||||||
..\..\..\ThirdPartyLibs\grpc\lib\win32\protoc --proto_path=. --cpp_out=. pybullet.proto
|
..\..\..\ThirdPartyLibs\grpc\lib\win32\protoc --proto_path=. --cpp_out=. pybullet.proto
|
||||||
..\..\..\ThirdPartyLibs\grpc\lib\win32\protoc.exe --plugin=protoc-gen-grpc="..\..\..\ThirdPartyLibs\grpc\lib\win32\grpc_cpp_plugin.exe" --grpc_out=. pybullet.proto
|
..\..\..\ThirdPartyLibs\grpc\lib\win32\protoc.exe --plugin=protoc-gen-grpc="..\..\..\ThirdPartyLibs\grpc\lib\win32\grpc_cpp_plugin.exe" --grpc_out=. pybullet.proto
|
||||||
move pybullet.grpc.pb.cc ..\pybullet.grpc.pb.cpp
|
|
||||||
move pybullet.grpc.pb.h ..\pybullet.grpc.pb.h
|
|
||||||
move pybullet.pb.cc ..\pybullet.pb.cpp
|
|
||||||
move pybullet.pb.h ..\pybullet.pb.h
|
|
||||||
|
|
||||||
del ..\pybullet_pb2.py
|
del pybullet_pb2.py
|
||||||
del ..\pybullet_pb2_grpc.py
|
del pybullet_pb2_grpc.py
|
||||||
|
|
||||||
..\..\..\ThirdPartyLibs\grpc\lib\win32\protoc --proto_path=. --python_out=. pybullet.proto
|
..\..\..\ThirdPartyLibs\grpc\lib\win32\protoc --proto_path=. --python_out=. pybullet.proto
|
||||||
python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. pybullet.proto
|
python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. pybullet.proto
|
||||||
move pybullet_pb2.py ..\pybullet_pb2.py
|
|
||||||
move pybullet_pb2_grpc.py ..\pybullet_pb2_grpc.py
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
// Generated by the gRPC C++ plugin.
|
|
||||||
// If you make any local change, they will be lost.
|
|
||||||
// source: pybullet.proto
|
|
||||||
|
|
||||||
#include "pybullet.pb.h"
|
|
||||||
#include "pybullet.grpc.pb.h"
|
|
||||||
|
|
||||||
#include <grpc++/impl/codegen/async_stream.h>
|
|
||||||
#include <grpc++/impl/codegen/async_unary_call.h>
|
|
||||||
#include <grpc++/impl/codegen/channel_interface.h>
|
|
||||||
#include <grpc++/impl/codegen/client_unary_call.h>
|
|
||||||
#include <grpc++/impl/codegen/method_handler_impl.h>
|
|
||||||
#include <grpc++/impl/codegen/rpc_service_method.h>
|
|
||||||
#include <grpc++/impl/codegen/service_type.h>
|
|
||||||
#include <grpc++/impl/codegen/sync_stream.h>
|
|
||||||
namespace pybullet_grpc {
|
|
||||||
|
|
||||||
static const char* PyBulletAPI_method_names[] = {
|
|
||||||
"/pybullet_grpc.PyBulletAPI/SubmitCommand",
|
|
||||||
};
|
|
||||||
|
|
||||||
std::unique_ptr< PyBulletAPI::Stub> PyBulletAPI::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
|
|
||||||
std::unique_ptr< PyBulletAPI::Stub> stub(new PyBulletAPI::Stub(channel));
|
|
||||||
return stub;
|
|
||||||
}
|
|
||||||
|
|
||||||
PyBulletAPI::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel)
|
|
||||||
: channel_(channel), rpcmethod_SubmitCommand_(PyBulletAPI_method_names[0], ::grpc::RpcMethod::NORMAL_RPC, channel)
|
|
||||||
{}
|
|
||||||
|
|
||||||
::grpc::Status PyBulletAPI::Stub::SubmitCommand(::grpc::ClientContext* context, const ::pybullet_grpc::PyBulletCommand& request, ::pybullet_grpc::PyBulletStatus* response) {
|
|
||||||
return ::grpc::BlockingUnaryCall(channel_.get(), rpcmethod_SubmitCommand_, context, request, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
::grpc::ClientAsyncResponseReader< ::pybullet_grpc::PyBulletStatus>* PyBulletAPI::Stub::AsyncSubmitCommandRaw(::grpc::ClientContext* context, const ::pybullet_grpc::PyBulletCommand& request, ::grpc::CompletionQueue* cq) {
|
|
||||||
return new ::grpc::ClientAsyncResponseReader< ::pybullet_grpc::PyBulletStatus>(channel_.get(), cq, rpcmethod_SubmitCommand_, context, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
PyBulletAPI::Service::Service() {
|
|
||||||
AddMethod(new ::grpc::RpcServiceMethod(
|
|
||||||
PyBulletAPI_method_names[0],
|
|
||||||
::grpc::RpcMethod::NORMAL_RPC,
|
|
||||||
new ::grpc::RpcMethodHandler< PyBulletAPI::Service, ::pybullet_grpc::PyBulletCommand, ::pybullet_grpc::PyBulletStatus>(
|
|
||||||
std::mem_fn(&PyBulletAPI::Service::SubmitCommand), this)));
|
|
||||||
}
|
|
||||||
|
|
||||||
PyBulletAPI::Service::~Service() {
|
|
||||||
}
|
|
||||||
|
|
||||||
::grpc::Status PyBulletAPI::Service::SubmitCommand(::grpc::ServerContext* context, const ::pybullet_grpc::PyBulletCommand* request, ::pybullet_grpc::PyBulletStatus* response) {
|
|
||||||
(void) context;
|
|
||||||
(void) request;
|
|
||||||
(void) response;
|
|
||||||
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace pybullet_grpc
|
|
||||||
|
|
||||||
@@ -1,130 +0,0 @@
|
|||||||
// Generated by the gRPC C++ plugin.
|
|
||||||
// If you make any local change, they will be lost.
|
|
||||||
// source: pybullet.proto
|
|
||||||
#ifndef GRPC_pybullet_2eproto__INCLUDED
|
|
||||||
#define GRPC_pybullet_2eproto__INCLUDED
|
|
||||||
|
|
||||||
#include "pybullet.pb.h"
|
|
||||||
|
|
||||||
#include <grpc++/impl/codegen/async_stream.h>
|
|
||||||
#include <grpc++/impl/codegen/async_unary_call.h>
|
|
||||||
#include <grpc++/impl/codegen/method_handler_impl.h>
|
|
||||||
#include <grpc++/impl/codegen/proto_utils.h>
|
|
||||||
#include <grpc++/impl/codegen/rpc_method.h>
|
|
||||||
#include <grpc++/impl/codegen/service_type.h>
|
|
||||||
#include <grpc++/impl/codegen/status.h>
|
|
||||||
#include <grpc++/impl/codegen/stub_options.h>
|
|
||||||
#include <grpc++/impl/codegen/sync_stream.h>
|
|
||||||
|
|
||||||
namespace grpc {
|
|
||||||
class CompletionQueue;
|
|
||||||
class Channel;
|
|
||||||
class RpcService;
|
|
||||||
class ServerCompletionQueue;
|
|
||||||
class ServerContext;
|
|
||||||
} // namespace grpc
|
|
||||||
|
|
||||||
namespace pybullet_grpc {
|
|
||||||
|
|
||||||
class PyBulletAPI final {
|
|
||||||
public:
|
|
||||||
class StubInterface {
|
|
||||||
public:
|
|
||||||
virtual ~StubInterface() {}
|
|
||||||
// Sends a greeting
|
|
||||||
virtual ::grpc::Status SubmitCommand(::grpc::ClientContext* context, const ::pybullet_grpc::PyBulletCommand& request, ::pybullet_grpc::PyBulletStatus* response) = 0;
|
|
||||||
std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::pybullet_grpc::PyBulletStatus>> AsyncSubmitCommand(::grpc::ClientContext* context, const ::pybullet_grpc::PyBulletCommand& request, ::grpc::CompletionQueue* cq) {
|
|
||||||
return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::pybullet_grpc::PyBulletStatus>>(AsyncSubmitCommandRaw(context, request, cq));
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
virtual ::grpc::ClientAsyncResponseReaderInterface< ::pybullet_grpc::PyBulletStatus>* AsyncSubmitCommandRaw(::grpc::ClientContext* context, const ::pybullet_grpc::PyBulletCommand& request, ::grpc::CompletionQueue* cq) = 0;
|
|
||||||
};
|
|
||||||
class Stub final : public StubInterface {
|
|
||||||
public:
|
|
||||||
Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
|
|
||||||
::grpc::Status SubmitCommand(::grpc::ClientContext* context, const ::pybullet_grpc::PyBulletCommand& request, ::pybullet_grpc::PyBulletStatus* response) override;
|
|
||||||
std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::pybullet_grpc::PyBulletStatus>> AsyncSubmitCommand(::grpc::ClientContext* context, const ::pybullet_grpc::PyBulletCommand& request, ::grpc::CompletionQueue* cq) {
|
|
||||||
return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::pybullet_grpc::PyBulletStatus>>(AsyncSubmitCommandRaw(context, request, cq));
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
std::shared_ptr< ::grpc::ChannelInterface> channel_;
|
|
||||||
::grpc::ClientAsyncResponseReader< ::pybullet_grpc::PyBulletStatus>* AsyncSubmitCommandRaw(::grpc::ClientContext* context, const ::pybullet_grpc::PyBulletCommand& request, ::grpc::CompletionQueue* cq) override;
|
|
||||||
const ::grpc::RpcMethod rpcmethod_SubmitCommand_;
|
|
||||||
};
|
|
||||||
static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
|
|
||||||
|
|
||||||
class Service : public ::grpc::Service {
|
|
||||||
public:
|
|
||||||
Service();
|
|
||||||
virtual ~Service();
|
|
||||||
// Sends a greeting
|
|
||||||
virtual ::grpc::Status SubmitCommand(::grpc::ServerContext* context, const ::pybullet_grpc::PyBulletCommand* request, ::pybullet_grpc::PyBulletStatus* response);
|
|
||||||
};
|
|
||||||
template <class BaseClass>
|
|
||||||
class WithAsyncMethod_SubmitCommand : public BaseClass {
|
|
||||||
private:
|
|
||||||
void BaseClassMustBeDerivedFromService(const Service *service) {}
|
|
||||||
public:
|
|
||||||
WithAsyncMethod_SubmitCommand() {
|
|
||||||
::grpc::Service::MarkMethodAsync(0);
|
|
||||||
}
|
|
||||||
~WithAsyncMethod_SubmitCommand() override {
|
|
||||||
BaseClassMustBeDerivedFromService(this);
|
|
||||||
}
|
|
||||||
// disable synchronous version of this method
|
|
||||||
::grpc::Status SubmitCommand(::grpc::ServerContext* context, const ::pybullet_grpc::PyBulletCommand* request, ::pybullet_grpc::PyBulletStatus* response) final override {
|
|
||||||
abort();
|
|
||||||
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
|
|
||||||
}
|
|
||||||
void RequestSubmitCommand(::grpc::ServerContext* context, ::pybullet_grpc::PyBulletCommand* request, ::grpc::ServerAsyncResponseWriter< ::pybullet_grpc::PyBulletStatus>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
|
|
||||||
::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
typedef WithAsyncMethod_SubmitCommand<Service > AsyncService;
|
|
||||||
template <class BaseClass>
|
|
||||||
class WithGenericMethod_SubmitCommand : public BaseClass {
|
|
||||||
private:
|
|
||||||
void BaseClassMustBeDerivedFromService(const Service *service) {}
|
|
||||||
public:
|
|
||||||
WithGenericMethod_SubmitCommand() {
|
|
||||||
::grpc::Service::MarkMethodGeneric(0);
|
|
||||||
}
|
|
||||||
~WithGenericMethod_SubmitCommand() override {
|
|
||||||
BaseClassMustBeDerivedFromService(this);
|
|
||||||
}
|
|
||||||
// disable synchronous version of this method
|
|
||||||
::grpc::Status SubmitCommand(::grpc::ServerContext* context, const ::pybullet_grpc::PyBulletCommand* request, ::pybullet_grpc::PyBulletStatus* response) final override {
|
|
||||||
abort();
|
|
||||||
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
template <class BaseClass>
|
|
||||||
class WithStreamedUnaryMethod_SubmitCommand : public BaseClass {
|
|
||||||
private:
|
|
||||||
void BaseClassMustBeDerivedFromService(const Service *service) {}
|
|
||||||
public:
|
|
||||||
WithStreamedUnaryMethod_SubmitCommand() {
|
|
||||||
::grpc::Service::MarkMethodStreamed(0,
|
|
||||||
new ::grpc::StreamedUnaryHandler< ::pybullet_grpc::PyBulletCommand, ::pybullet_grpc::PyBulletStatus>(std::bind(&WithStreamedUnaryMethod_SubmitCommand<BaseClass>::StreamedSubmitCommand, this, std::placeholders::_1, std::placeholders::_2)));
|
|
||||||
}
|
|
||||||
~WithStreamedUnaryMethod_SubmitCommand() override {
|
|
||||||
BaseClassMustBeDerivedFromService(this);
|
|
||||||
}
|
|
||||||
// disable regular version of this method
|
|
||||||
::grpc::Status SubmitCommand(::grpc::ServerContext* context, const ::pybullet_grpc::PyBulletCommand* request, ::pybullet_grpc::PyBulletStatus* response) final override {
|
|
||||||
abort();
|
|
||||||
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
|
|
||||||
}
|
|
||||||
// replace default version of method with streamed unary
|
|
||||||
virtual ::grpc::Status StreamedSubmitCommand(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::pybullet_grpc::PyBulletCommand,::pybullet_grpc::PyBulletStatus>* server_unary_streamer) = 0;
|
|
||||||
};
|
|
||||||
typedef WithStreamedUnaryMethod_SubmitCommand<Service > StreamedUnaryService;
|
|
||||||
typedef Service SplitStreamedService;
|
|
||||||
typedef WithStreamedUnaryMethod_SubmitCommand<Service > StreamedService;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace pybullet_grpc
|
|
||||||
|
|
||||||
|
|
||||||
#endif // GRPC_pybullet_2eproto__INCLUDED
|
|
||||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -1,46 +0,0 @@
|
|||||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
||||||
import grpc
|
|
||||||
|
|
||||||
import pybullet_pb2 as pybullet__pb2
|
|
||||||
|
|
||||||
|
|
||||||
class PyBulletAPIStub(object):
|
|
||||||
# missing associated documentation comment in .proto file
|
|
||||||
pass
|
|
||||||
|
|
||||||
def __init__(self, channel):
|
|
||||||
"""Constructor.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
channel: A grpc.Channel.
|
|
||||||
"""
|
|
||||||
self.SubmitCommand = channel.unary_unary(
|
|
||||||
'/pybullet_grpc.PyBulletAPI/SubmitCommand',
|
|
||||||
request_serializer=pybullet__pb2.PyBulletCommand.SerializeToString,
|
|
||||||
response_deserializer=pybullet__pb2.PyBulletStatus.FromString,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class PyBulletAPIServicer(object):
|
|
||||||
# missing associated documentation comment in .proto file
|
|
||||||
pass
|
|
||||||
|
|
||||||
def SubmitCommand(self, request, context):
|
|
||||||
"""Sends a greeting
|
|
||||||
"""
|
|
||||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
||||||
context.set_details('Method not implemented!')
|
|
||||||
raise NotImplementedError('Method not implemented!')
|
|
||||||
|
|
||||||
|
|
||||||
def add_PyBulletAPIServicer_to_server(servicer, server):
|
|
||||||
rpc_method_handlers = {
|
|
||||||
'SubmitCommand': grpc.unary_unary_rpc_method_handler(
|
|
||||||
servicer.SubmitCommand,
|
|
||||||
request_deserializer=pybullet__pb2.PyBulletCommand.FromString,
|
|
||||||
response_serializer=pybullet__pb2.PyBulletStatus.SerializeToString,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
generic_handler = grpc.method_handlers_generic_handler(
|
|
||||||
'pybullet_grpc.PyBulletAPI', rpc_method_handlers)
|
|
||||||
server.add_generic_rpc_handlers((generic_handler,))
|
|
||||||
@@ -1,22 +1,21 @@
|
|||||||
|
|
||||||
//tinyRendererPlugin implements the TinyRenderer as a plugin
|
///grpcPlugin add a GRPC server to any PyBullet/BulletRobotics
|
||||||
//it is statically linked when using preprocessor #define STATIC_LINK_VR_PLUGIN
|
///physics server. You can connect using PyBullet connect.GRPC method
|
||||||
//otherwise you can dynamically load it using pybullet.loadPlugin
|
|
||||||
|
|
||||||
#include "grpcPlugin.h"
|
#include "grpcPlugin.h"
|
||||||
#include "../../SharedMemoryPublic.h"
|
#include "SharedMemory/SharedMemoryPublic.h"
|
||||||
#include "../b3PluginContext.h"
|
#include "../b3PluginContext.h"
|
||||||
#include "Bullet3Common/b3AlignedObjectArray.h"
|
#include "Bullet3Common/b3AlignedObjectArray.h"
|
||||||
#include "SharedMemoryCommands.h"
|
#include "SharedMemory/SharedMemoryCommands.h"
|
||||||
#include "PhysicsCommandProcessorInterface.h"
|
#include "SharedMemory/PhysicsCommandProcessorInterface.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <grpc++/grpc++.h>
|
#include <grpc++/grpc++.h>
|
||||||
#include <grpc/support/log.h>
|
#include <grpc/support/log.h>
|
||||||
#include "../../../Utils/b3Clock.h"
|
#include "../../../Utils/b3Clock.h"
|
||||||
#include "../../grpc/pybullet.grpc.pb.h"
|
#include "SharedMemory/grpc/proto/pybullet.grpc.pb.h"
|
||||||
#include "../../grpc/ConvertGRPCBullet.h"
|
#include "SharedMemory/grpc/ConvertGRPCBullet.h"
|
||||||
using grpc::Server;
|
using grpc::Server;
|
||||||
using grpc::ServerAsyncResponseWriter;
|
using grpc::ServerAsyncResponseWriter;
|
||||||
using grpc::ServerBuilder;
|
using grpc::ServerBuilder;
|
||||||
@@ -28,7 +27,7 @@ using pybullet_grpc::PyBulletStatus;
|
|||||||
using pybullet_grpc::PyBulletAPI;
|
using pybullet_grpc::PyBulletAPI;
|
||||||
|
|
||||||
|
|
||||||
bool gVerboseNetworkMessagesServer4 = true;
|
bool gVerboseNetworkMessagesServer4 = false;
|
||||||
|
|
||||||
|
|
||||||
class ServerImpl final {
|
class ServerImpl final {
|
||||||
@@ -64,7 +63,7 @@ public:
|
|||||||
cq_ = m_builder.AddCompletionQueue();
|
cq_ = m_builder.AddCompletionQueue();
|
||||||
// Finally assemble the server.
|
// Finally assemble the server.
|
||||||
server_ = m_builder.BuildAndStart();
|
server_ = m_builder.BuildAndStart();
|
||||||
std::cout << "Server listening on " << hostNamePort << std::endl;
|
std::cout << "grpcPlugin Bullet Physics GRPC server listening on " << hostNamePort << std::endl;
|
||||||
|
|
||||||
// Proceed to the server's main loop.
|
// Proceed to the server's main loop.
|
||||||
InitRpcs(comProc);
|
InitRpcs(comProc);
|
||||||
@@ -314,7 +313,7 @@ B3_SHARED_API int executePluginCommand_grpcPlugin(struct b3PluginContext* contex
|
|||||||
|
|
||||||
grpcMyClass* obj = (grpcMyClass*)context->m_userPointer;
|
grpcMyClass* obj = (grpcMyClass*)context->m_userPointer;
|
||||||
|
|
||||||
if (arguments->m_text && strlen(arguments->m_text))
|
if (strlen(arguments->m_text))
|
||||||
{
|
{
|
||||||
if (!obj->m_grpcInitialized && context->m_rpcCommandProcessorInterface)
|
if (!obj->m_grpcInitialized && context->m_rpcCommandProcessorInterface)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9599,8 +9599,12 @@ PyInit_pybullet(void)
|
|||||||
#ifdef BT_USE_EGL
|
#ifdef BT_USE_EGL
|
||||||
initpybullet_egl(void)
|
initpybullet_egl(void)
|
||||||
#else
|
#else
|
||||||
|
#ifdef BT_PYBULLET_GRPC
|
||||||
|
initpybullet_grpc(void)
|
||||||
|
#else
|
||||||
initpybullet(void)
|
initpybullet(void)
|
||||||
#endif //BT_USE_EGL
|
#endif //BT_USE_EGL
|
||||||
|
#endif //BT_PYBULLET_GRPC
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
PyObject* m;
|
PyObject* m;
|
||||||
@@ -9609,9 +9613,13 @@ initpybullet(void)
|
|||||||
#else
|
#else
|
||||||
#ifdef BT_USE_EGL
|
#ifdef BT_USE_EGL
|
||||||
m = Py_InitModule3("pybullet_egl", SpamMethods, "Python bindings for Bullet");
|
m = Py_InitModule3("pybullet_egl", SpamMethods, "Python bindings for Bullet");
|
||||||
|
#else
|
||||||
|
#ifdef BT_PYBULLET_GRPC
|
||||||
|
m = Py_InitModule3("pybullet_grpc", SpamMethods, "Python bindings for Bullet");
|
||||||
#else
|
#else
|
||||||
m = Py_InitModule3("pybullet", SpamMethods, "Python bindings for Bullet");
|
m = Py_InitModule3("pybullet", SpamMethods, "Python bindings for Bullet");
|
||||||
#endif //BT_USE_EGL
|
#endif //BT_USE_EGL
|
||||||
|
#endif //BT_PYBULLET_GRPC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if PY_MAJOR_VERSION >= 3
|
#if PY_MAJOR_VERSION >= 3
|
||||||
|
|||||||
Reference in new issue
Block a user