From: Marty K. <mrk...@co...> - 2011-06-03 19:02:43
|
In May I visited BNL to discuss my priorities now the v3Channel which implements a version of Channel that provides pvAccess to V3 records. My priority now is to help Goubao start implementing services that run in pvIOCCP. Since it will take a lot of effort to implement support for V4 records that includes support and record processing it means that a service must do more work than services in javaIOC. The services in javaIOC are implemented via support attached to a field of a V4 record which has fields related to the service. A base class for Channel now exists that implements some of the common things that must be done to implement Channel. v3Channel was modified to use this base class. I have tested and committed what has been done so far. There is still more work to do on this base class before it is ready for use. BUT there are still problems and I need Matej to look and see if he can help. I have created an exampleChannel that extends PVServiceBase. When /home/mrk/hg/pvIOCCPP/iocBoot/testV3Channel is started the exampleChannel is stated that supports a single channel named exampleChannel. To see what is wrong do the following: start the IOC via valgrind ../../bin/linux-x86/testV3Channel st.cmd valgrind will show what is wrong On the javaIOC swtshell ask for get 1) connect to exampleChannel. It does connect but then immediately disconnect valgrind will show what is wrong. 2) again start the IOC (not necessary to run under valgrid) connect get to exampleChannel click createGet Note the message on the IOC console. They are coming from pvIOCCPP/pvIocApp/exampleService/exampleChannelGet.cpp It never returns from channelGetRequester->channelGetConnect( Status::OK, getPtrSelf(), pvTop, bitSet); Any ideas? Marty |