snayagar / protobuf-remote Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/protobuf-remote
Automatically exported from code.google.com/p/protobuf-remote
I'm trying to use protobufremote asynchronously, everything is working properly
with synchronous method but when using it with a callback which is supposed to
get the resultset back there's no way to obtain it.
When debugging, it seems that the ProtoFromMessage is never called ( i'm doing
my test on a user object )
Basically scheme is the following
AsyncCallback cb = new AsyncallBack ( ProcessResult );
IAsyncResult res = BeginGetData(object myparam,cb,null);
...
void ProcessResult ( IAsyncResult res)
{
if (res.Completed)
{
MyObject obj = (MyObject) res.Result; // here impossible because IAsynResult is a PendingCall object so => res.Result is a ProtoParam => so it should have been serialized before in the process i assume
How can i do it.....?
}
}
Original issue reported on code.google.com by [email protected]
on 27 Sep 2012 at 12:19
Please add C++ and C# named pipes transports.
Original issue reported on code.google.com by [email protected]
on 13 Feb 2013 at 12:32
What steps will reproduce the problem?
1. Define a method like PBR_METHOD(GetValue, PBR_STRING(PBR_VOID))
2. Compile
What is the expected output? What do you see instead?
Below is a piece of macros for the Call method of PBE expanded:
else if (strcmp(methodName, "GetValue") == 0) { if
(parameters.GetNumParameters() == 0) { std::string resultValue; GetValue(,
&resultValue); result->SetString(resultValue); return true; } }
The call to GetValue(std::string* resultPtr) is generated incorrectly. so there
is an error.
What version of the product are you using? On what operating system?
win7, visual studio 2010, sources from ProtoBufRemote C++ 0.1 downloads zip.
Please provide any additional information below.
How I get in that issue:
Basically I try to write a c++ server and c# client, it is all fine on ั#
defining service method like string GetValue(), so with c++ I expected the
similar std::string* GetValue() definition...
But void GetValue(std::string* param) is just fine.
Now I made workaround by adding add fake int param to the method call.
Thank you,
Vlad
Original issue reported on code.google.com by [email protected]
on 14 Mar 2011 at 6:03
Can we do non-blocking RPC calls via the new C# async/await pattern?
Original issue reported on code.google.com by [email protected]
on 24 Jul 2012 at 6:09
There is a need to have Linux and Mac OS X versions of protobuf-remote C++ part.
Original issue reported on code.google.com by [email protected]
on 23 Nov 2011 at 10:23
Reading about local IPC on Windows leads me to idea that Named Pipes is not the
transport should be used where Unix Domain sockets are on Unix. Other, most
probably faster, should be.
ALPC and Unix Domain sockets are similar:
1. No networking
2. Simple names (no specific prefix)
3. Articles impress that Windows ALPC and Unix Domain Sockets use more OS
"kernel" then Windows Named Pipes.
Unix Domain sockets and Windows Named Pipes:
1. Named pipes are design for Windows Domain printer and file sharing, not
local IPC.
2. means Named Pipes do some networking even if are local by security.
True MS design:
Local Out of process COM and MS-RPC uses ALPC for local inter process
communication everywhere in the OS components.
Can find in many processes via Sysinternals Process Monitor, look for
ALPC Port : \RPC Control\OLE[RANDOM_GUID].
Value:
I think would be faster with lower resource usage.
Links:
http://en.wikipedia.org/wiki/Local_Procedure_Call
http://www.zezula.net/en/prog/lpc.html
Search LRPC on http://technet.microsoft.com/en-us/library/cc738291(v=ws.10).aspx
Original issue reported on code.google.com by [email protected]
on 18 Mar 2013 at 10:41
What steps will reproduce the problem?
1. Run the provided C# Sample from v0.1.1
2. Enter a non-prime number (e.g. 6)
What is the expected output? What do you see instead?
The RPC call should return false, instead an ArgumentException is thrown. This
does not happen if the number is prime.
What version of the product are you using? On what operating system?
* Windows 7
* Visual Studio 2010
* protobuf-remote v0.1.1
* protobuf-net.2.0.0.47
Please provide any additional information below.
What I've noticed is that there is a "BoolParamSpecified" field in
"ProtoBufRemote.RpcMessage.Parameter" which is correctly set on the
server-side, but it's not transmitted to the client-side, that is, on the
clients-side the RPC-call result has the "BoolParam" field correctly set to
"false", but "BookParamSpecified" is false as well, which is wrong.
This does not happen if the "TestPrime" RPC-call returns true.
Original issue reported on code.google.com by [email protected]
on 1 Dec 2011 at 10:31
What steps will reproduce the problem?
1. Run project's sample
2. Input 4 or any other non prime number
3. Got exception: Cannot convert server return value into expected bool return
type (Parameter did not have expected bool type.)
this happens becouse it threats false as null
same error happens whan returning 0 for numeric values.
Original issue reported on code.google.com by [email protected]
on 24 Aug 2012 at 12:38
What steps will reproduce the problem?
with sample code:
int SampleServiceProxy::GetSquare( int p0 ) {
m_parameters.Clear();
m_parameters.Add().SetInt (p0);
PendingCall* call = m_client->Call(m_serviceName, "GetSquare", m_parameters);
call->Wait();
// I've added sync code to PendingCall
//void PendingCall::Wait() { m_sync.wait();}
//void PendingCall::SetResult(const RpcMessage::Parameter* parameter) {
// ...
// m_sync.set();
//}
int result = call->GetResult()->GetInt();
m_client->ReleaseCall(call);
return result;
}
What is the expected output? What do you see instead?
I've called proxy->GetSquare(10);
result value is Garbage Value, Not 100
What version of the product are you using? On what operating system?
0.1.1
Please provide any additional information below.
I have debugged protobuf-remote.
void SocketRpcChannel::Run()
{
while (isReceiveReady && !isTerminated)
{
...
if (isReceiving)
{
RpcMessage message;
// THIS VALUE HAS LOCAL SCOPE LIFE TIME.
// SO WHEN I CALL Parameter->GetResult()->GetInt(), somtimes message disappered
//
//Parameter::Parameter(const RpcMessage::Parameter& message)
// : m_message(message) {}
bool isOk = message.ParseFromArray(&receiveBuffer[0], receiveSize);
assert(isOk);
m_controller->Receive(message);
isReceiving = false;
receiveSize = sizeof(int);
receivePos = 0;
}
}
}
Original issue reported on code.google.com by [email protected]
on 21 Apr 2011 at 2:13
It would be nice to have a section added to show how users can make
asynchronous calls (C#) to do RPC.
Original issue reported on code.google.com by [email protected]
on 24 Jul 2012 at 6:07
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.