Giter Site home page Giter Site logo

protobuf-remote's People

Watchers

 avatar

protobuf-remote's Issues

Async with callback doesn't work

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

Preprocessor error while creating PRB_SERVICE_STUB with PBR_METHOD(GetValue, PBR_STRING(PBR_VOID))

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

Windows ALPC transport

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

C# Sample throws ArgumentException when entering non-prime number

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

C# RPC returning default value fails

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

RpcMessage message life time problem in SocketRpcChannel::Run()

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.