[ome-devel] ome access with c++

gerhard bi1825 at fh-weihenstephan.de
Tue Sep 27 10:44:27 BST 2005


Zachary Pincus wrote:
> Hi Folks,
>
> Gerhard emailed me earlier about my progress on the C++ bindings. For 
> the record, I was never able to get them to work properly, much less 
> keep them in synch with changes in the remote API.
>
> I think the idea as a whole isn't a bad one; I just didn't have 
> enough experience in software design to really choose the right way 
> to build a set of proxy wrapper classes.
>
> In the mean time, I think that the OME::Remote API is clear enough, 
> and the state of C++ XML-RPC libraries is good enough, that it should 
> be pretty easy to just write directly to the OME::Remote API without 
> needing a layer of proxy classes. This clearly isn't ideal, but for 
> getting code to do specific tasks it should work.
>
> I might one day wind up re-implementing the java bindings in Python. 
> (This would be a pretty simple task thanks to Python's supremacy over 
> all other scripting languages that begin with the letter P. :) And 
> who would want to write C++ when they could be writing python/perl/java?
>
> Zach
>
>
> On Sep 23, 2005, at 2:10 PM, Ilya Goldberg wrote:
>
>> I think it would help to get some clarification of what parts of  OME
>> you would like to access from c++.
>> There is a library written by BitPlane to read OME XML from c++:
>> http://www.embl.de/eamnet/html/downloads.html
>>
>> Zach Pincus <zpincus at stanford.edu> wrote a c++ library to talk to 
>> the OME data server via XMLRPC.  I haven't tried it, but I think he 
>> got it to a functional state.  I don't know if he's listening in 
>> (hello?  Zach?), but maybe you can contact him off-list.
>>
>> Tomasz wrote a sub-set of the functionality available in OMEIS 
>> accessible from C.  The OMEIS interface is essentially HTTP, so 
>> there's not a lot to do other than call the appropriate methods in 
>> libcurl or libwww.
>>
>> I wouldn't go so far as to call it a library, but I wrote some 
>> helper routines to access the OME data server from Excel using  VBA. 
>> This happens using HTTP requests to issue queries with  results being
>> sent back as flat, tab-separated plain-text tables  (which is
>> convenient for Excel, but probably not what you want).
>>
>> -Ilya
>>
>> On Sep 24, 2005, at 5:07 AM, gerhard wrote:
>>
>>
>>> T. J. Macura wrote:
>>>
>>>>
>>>> On Sep 23, 2005, at 11:44 AM, gerhard wrote:
>>>>
>>>>
>>>>> T. J. Macura wrote:
>>>>>
>>>>>
>>>>>> Gerhard,
>>>>>>
>>>>>>
>>>>>>> reading through the posts of the last months I saw several 
>>>>>>> postings
>>>>>>> about accessing ome with c++;
>>>>>>>
>>>>>>
>>>>>> I can only speak about C client-library access to OMEIS.
>>>>>> That exists, has been thoroughly tested, and we use it nearly
>>>>>> constantly (through MEX bindings to MATLAB).
>>>>>>
>>>>>> It is even documented:
>>>>>> http://www.openmicroscopy.org/api/omeis/client-interface.html
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>>
>>>>> Thanks very much,
>>>>> but are there methods to upload and download files from OMEIS.
>>>>>
>>>> Those weren't implemented. Knowing  C, Perl, and OME internals I 
>>>> would
>>>> find writing an image format importer in C++ (how would it interface
>>>> with OME's Perl Logical Layer?) is much harder than writing it in
>>>> Perl. If there are some specific functions e.g. decompression which
>>>> are easier to write in C, perhaps XS perl bindings are the way 
>>>> forward.
>>>>
>>>>
>>>>> Reading through the methods section the most functions aren't'
>>>>> implemented (file methods..)
>>>>>
>>>> "most functions" depends on the perspective. I implemented all the
>>>> functions that were important to me and meet a wide range of  needs. I
>>>> didn't implement the other functions because we didn't have any real
>>>> use-cases for them. I would be quite willing to implement OMEIS
>>>> client-libarary  functions you need for your work.
>>>>
>>>> _______________________________________________
>>>>
>>>>> ome-devel mailing list
>>>>> ome-devel at lists.openmicroscopy.org.uk
>>>>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
>>>>>
>>>>>
>>>>
>>>> I think at the moment the  C client library can only be used to get
>>>> pixels out of OME and run for example algorithmns on them.
>>>> But how does shoola access OME? XML-RPC and HTTP. But both can be 
>>>> used
>>>> also in C++. QT for example has classes to access http....
>>>>
>>>>
>>>
>>> _______________________________________________
>>> ome-devel mailing list
>>> ome-devel at lists.openmicroscopy.org.uk
>>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
>>>
>>>
>>
>> _______________________________________________
>> ome-devel mailing list
>> ome-devel at lists.openmicroscopy.org.uk
>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
>>
>
> _______________________________________________
> ome-devel mailing list
> ome-devel at lists.openmicroscopy.org.uk
> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
>
Thanks for your answers,
At the moment I deal with QT so I just thought about a
simple application to query the database and get a specific picture out
of OME.
Because QT has classes for http and xml it should be no problem to use
them to access OME.
But how works OME inside. The use of XML-RPC can only query the
database. So I can use this to get an specific Picture ID out of OME and
then use the ID to contact OMEIS. Is this right?
And what happens if I import an picture to OMEIS. Am I responsible for
calling the proper methods so that OME (Database) knows about the new
picture?








More information about the ome-devel mailing list