From: Ralph L. <Ral...@gm...> - 2012-03-16 17:33:51
|
On 16.03.2012 18:20, White, Greg wrote: > Marty, > > What is the definitive right way to implement an RPC service now? I think the two examples in exampleJava/, helloWorld and rdbService, only work because they use an old mechanism still present in pvService package org.epics.pvService.rpc. > > In short, I very much need an absolutely unassailable example of how you do both the server and client sides of ChannelPutGet and ChannelRPC. You know all physicists that write services, and most programmers, will work off > the example. So this example will be genesis of all EPICs V4 services, so it better be perfect! I was going to > ask you to "check" the service in exampleJava, but now I think a more apt way of putting the request is "please > fix them." > > The services in exampleJava/ use a class in pvService called ServiceClient made by ServiceClientFactory. Is this supposed to be replaced by use of pvAccess channelRPC? Is there an example of a server and a client anywhere? I see in pvIOC Java reference doc a package "org.epics.ioc.support.rpc" is described [1], but it's confusing to me - is it "support" in that it's a tool for writing services, or does it contain illustrations of how you might write code for generic functionality of services? The document seems to go back and forth on that. The code for exampleChannelRPC seems to include timing stuff, and the package comment says it's "support for getting a list of records". It doesn't tell me what it does. Is there source code for a client for it somewhere, that I can use as a reference? Duh. I am developing my V4 directory service starting from rdbService, as this was suggested in the telecon two weeks ago. I'm two thirds done. Does that mean I should scrap my code and start from scratch? Trying to avoid this was why I was asking where to start from in the first place. Confused, ~Ralph ps. Just got travel to the SLAC meeting approved. Count me in! |