[ome-devel] Getting started with C++ API for OMERO.server clients

josh.moore at gmx.de josh.moore at gmx.de
Tue Sep 1 15:09:43 BST 2009


Nick Perry writes:
 > Yeah but only certain server distributions I can DL have the C++ library for
 > the client. If that's not supplied by the OMERO server, where is a 3rd party
 > app supposed to get the library?

By building from the branch which matches the server version.

 > In other words, let's say I DL the version of the OMERO server
 > *without* the API libraries. And let's say I try to connect to this
 > server with a 3rd party client that uses the C++ API. Where will it
 > get the library for the API unless the server provides it?

The server doesn't really provide a C++ API, rather it just provides a
single API, which can be connected to by C++, Python, and Java.. So,
the 3rd party client would build the library from svn like you are
doing, and then it would be able to talk directly to OMERO.

All of this is based on Ice (http://zeroc.com) which is a
cross-language library. It handles the low-level details, so that
the OMERO Java server (with no C++ library) can seamlessly be talked
to by a 3rd party client which builds it's own C++ library.

Sorry for the (possibly continuing) confusion,
~Josh

 > On Tue, Sep 1, 2009 at 3:48 PM, <josh.moore at gmx.de> wrote:
 > 
 > > Nick Perry writes:
 > >  > Hey Josh,
 > >
 > > Hey Nick,
 > >
 > >  > Does this mean that *any* OMERO server that intends to have 3rd
 > >  > party apps connect using the API needs to use this special OMERO
 > >  > distribution that has the API?
 > >
 > > No. The intention is that any server with the version x.y will be
 > > accessible to any client API implementation (OmeroPy, OmeroCpp,
 > > OmeroJava, OmeroMatlab, ...) built from the same x.y version. We've
 > > made some mistakes in this regard this year, so it's safer to say:
 > >
 > >    server version x.y.z is accessible from client version x.y.z
 > >    regardless where you got either: svn-checkout-build, binary
 > >    distribution, etc.
 > >
 > > Another way of saying this is that the server and the clients (client
 > > APIs) are to some extent independent, so that even if we don't supply
 > > the C++ libraries, there's nothing from stopping you from building and
 > > using them with your server, as long as the version matches.
 > >
 > > Cheers,
 > > ~Josh
 > >
 > >  > Nick
 > >  >
 > >  > On Tue, Sep 1, 2009 at 12:24 PM, <josh.moore at gmx.de> wrote:
 > >  >
 > >  > > Nick Perry writes:
 > >  > >  > the previous* command (not following). Sorry.
 > >  > >  >
 > >  > >  > On Tue, Sep 1, 2009 at 12:11 PM, Nick Perry <nperry at stanford.edu>
 > >  > > wrote:
 > >  > >  >
 > >  > >  > > Hey Josh,
 > >  > >  > >
 > >  > >  > > Sorry to bug you again.
 > >  > >  > >
 > >  > >  > > I'm trying to put together in my head everything I've done so
 > > far.
 > >  > >  > >
 > >  > >  > > With the command:
 > >  > >  > > svn co http://cvs.openmicroscopy.org.uk/svn/omero/trunk omero
 > >  > >  > >
 > >  > >  > > I'm checking out a new omero distribution, right? So if I had the
 > >  > >  > > omero
 > >  > >
 > >  > > Correct.
 > >  > >
 > >  > >  > > server up and running already on my computer (the standard
 > > download),
 > >  > > I've
 > >  > >  > > messed things up, right?
 > >  > >
 > >  > > Not really. You'll need to shut it off (bin/omero admin stop) in order
 > >  > > to start the new server. If you've already deleted the directory, you
 > >  > > can use:
 > >  > >
 > >  > >  killall icegridnode
 > >  > >
 > >  > > to get rid of the runing server.
 > >  > >
 > >  > >  > > I was just looking in my previous omero distribution folder and
 > >  > >  > > this new checked out one, and they share files but the latter has
 > >  > >  > > the build.py. So if I'm guessing correctly, I need to run the
 > >  > >  > > omero server out of this new, special distribution, right?
 > >  > >
 > >  > > Right. When you run ./build.py from a checkout it produces the "dist"
 > >  > > directory. This is the same as the distribution which is available for
 > >  > > download.
 > >  > >
 > >  > >  > > So the omero server with API is DIFFERENT than the normal omero
 > >  > >  > > server, and in order to write C++ api for connecting 3rd party
 > >  > >  > > clients to omero i need to be running the omero server using the
 > >  > >  > > distribution I check out with the following command...?
 > >  > >
 > >  > > Not at all. As long as the versions match, you can use a distribution
 > >  > > with a checkout. Your distribution is most likely 4.0.x, so you'll
 > >  > > need to be checking out from:
 > >  > >
 > >  > >  http://cvs.openmicroscopy.org.uk/svn/omero/branches/Beta4.0/
 > >  > >
 > >  > > The reason that the svn checkout is required is that we don't
 > >  > > currently provide the C++ library with the distribution.
 > >  > >
 > >  > >  > > Thanks for the help,
 > >  > >  > > Nick
 > >  > >
 > >  > > Gladly,
 > >  > > ~Josh.
 > >  > >
 > >  > >  > >
 > >  > >  > >
 > >  > >  > > On Tue, Sep 1, 2009 at 12:00 PM, Nick Perry <nperry at stanford.edu
 > > >
 > >  > > wrote:
 > >  > >  > >
 > >  > >  > >> Hey Josh,
 > >  > >  > >>
 > >  > >  > >> Sorry I'm not as familiar with compiling C++ / makefiles as I
 > > should
 > >  > > be,
 > >  > >  > >> but in the following step:
 > >  > >  > >>
 > >  > >  > >> Finding the library ¶<
 > >  > >
 > > http://trac.openmicroscopy.org.uk/omero/wiki/OmeroCpp#Findingthelibrary>
 > >  > >  > >>
 > >  > >  > >> What will be produced by that build are two sets of artifacts:
 > >  > >  > >>
 > >  > >  > >>    - dist/include contains C++ header files as well as the slice
 > >  > > files
 > >  > >  > >>    from which the Ice-based model is generated. You will need to
 > > pass
 > >  > > these to
 > >  > >  > >>    your compiler.
 > >  > >  > >>    - dist/lib contains the shared library file, which you will
 > > need
 > >  > > to
 > >  > >  > >>    pass to your linker. On Linux libomero_client.so on OS X
 > >  > >  > >>    libomero_client.dylib and on Windows omero_client.dll, in 32
 > > or
 > >  > > 64-bit
 > >  > >  > >>    mode depending on your CXXFLAGS (See OmeroBuild<
 > >  > > http://trac.openmicroscopy.org.uk/omero/wiki/OmeroBuild>)
 > >  > >  > >>
 > >  > >  > >>
 > >  > >  > >> Note: the shared library files can be quite large, even over
 > > 200MB.
 > >  > >  > >>
 > >  > >  > >>
 > >  > >  > >> For bullet 2, do I need to pass my shared library file
 > > explicitly in
 > >  > > a
 > >  > >  > >> step I should know how to do, or is this accomplished in the
 > > next
 > >  > > step when
 > >  > >  > >> I use the make file?
 > >  > >  > >>
 > >  > >  > >> Thanks,
 > >  > >  > >>
 > >  > >  > >> Nick
 > >  > >  > >>
 > >  > >  > >> On Tue, Sep 1, 2009 at 11:54 AM, <josh.moore at gmx.de> wrote:
 > >  > >  > >>
 > >  > >  > >>>
 > >  > >  > >>> *whew*
 > >  > >  > >>>
 > >  > >  > >>> Good to hear. ~J.
 > >  > >  > >>>
 > >  > >  > >>> Nick Perry writes:
 > >  > >  > >>>  > just kidding; i hadn't given the svn command my proxy info
 > > :)
 > >  > >  > >>>  >
 > >  > >  > >>>  > On Tue, Sep 1, 2009 at 11:11 AM, Nick Perry <
 > > nperry at stanford.edu
 > >  > > >
 > >  > >  > >>> wrote:
 > >  > >  > >>>  >
 > >  > >  > >>>  > > SVN still not working:
 > >  > >  > >>>  > >
 > >  > >  > >>>  > > svn co http://cvs.openmicroscopy.org.uk/svn/omero/trunkomero
 > >  > >  > >>>  > >
 > >  > >  > >>>  > > svn: PROPFIND request failed on '/svn/omero/trunk'
 > >  > >  > >>>  > > svn: PROPFIND of '/svn/omero/trunk': could not connect to
 > >  > > server (
 > >  > >  > >>>  > > http://cvs.openmicroscopy.org.uk)
 > >  > >  > >>>  > >
 > >  > >  > >>>  > > On Mon, Aug 31, 2009 at 8:05 PM, <josh.moore at gmx.de>
 > > wrote:
 > >  > >  > >>>  > >
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >> Nick Perry writes:
 > >  > >  > >>>  > >>  > Hi,
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >> Hi Nick,
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >>  > I'm extremely confused about where to start when
 > > trying to
 > >  > > play
 > >  > >  > >>>  > >>  > around with the OMERO server C++ API for OMERO
 > > clients. I
 > >  > > think
 > >  > >  > >>>  > >>  > this is the correct page to start on
 > >  > >  > >>>  > >>  > http://trac.openmicroscopy.org.uk/omero/wiki/OmeroCpp,
 > > but
 > >  > > I'm
 > >  > >  > >>>  > >>  > having a hard time understanding what's going on.
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >> That is the correct page, but as always, the docs can use
 > >  > >  > >>>  > >> improvements. I've updated them; can you give take a
 > > look, and
 > >  > > tell
 > >  > >  > >>> me
 > >  > >  > >>>  > >> if things are clearer now?
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >>  > First of all, the svn call
 > >  > >  > >>>  > >>  > on that page (svn co
 > >  > >  > >>> http://cvs.openmicroscopy.org.uk/svn/omero/trunkomero)
 > >  > >  > >>>  > >>  > doesn't work; i get the following error:
 > >  > >  > >>>  > >>  >
 > >  > >  > >>>  > >>  > svn: PROPFIND request failed on '/svn/omero/trunk'
 > >  > >  > >>>  > >>  > svn: PROPFIND of '/svn/omero/trunk': could not connect
 > > to
 > >  > > server
 > >  > >  > >>> (
 > >  > >  > >>>  > >>  > http://cvs.openmicroscopy.org.uk)
 > >  > >  > >>>  > >>  >
 > >  > >  > >>>  > >>  > Why is this not working?
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >> This morning there was a short outage of all developer
 > >  > >  > >>>  > >> resources. Could you re-try and let us know if it's
 > > working
 > >  > > now?
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >> ...
 > >  > >  > >>>  > >>  > Thanks,
 > >  > >  > >>>  > >>  > Nick
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >> ~Josh.
 > >  > >  > >>>  > >>
 > >  > >  > >>>  > >
 > >  > >  > >>>  > >
 > >  > >  > >>>
 > >  > >  > >>
 > >  > >  > >>
 > >  > >  > >
 > >  > >
 > >


More information about the ome-devel mailing list