[eq-dev] Porting Equalizer 0.9.0 application to 1.0 alpha

1 view
Skip to first unread message

Juan Hernando

unread,
Jan 10, 2011, 2:11:18 PM1/10/11
to Equalizer Developer List
Dear all,
Before starting to mess with my code I would like to know a couple of
things about the new API.
In terms of the old API, I have a distributed object deriving from
eq::net::Object that overrides attachToSession to register some commands
to facilitate the mapping of additional distributed objects and runtime.
I called this object ClusterObjectManager

I was making extensive use of the lower level eq::net namespace. But now
I see that all the rendering independent cluster stuff has moved into
its own library (Collage) and the namespace has changed. That seems to
be a simple namespace change.

Another change I've seen is that makeThreadSafe has been removed. I'm
not sure about the internal threading of Equalizer regarding command
queues and distributed objects so I don't know what do I have to do to
guarantee thread-safety now.

I'd also like to know a little more about the replacements for
net::Session (I was using Object::getSession to map objects) and whether
I may need to create a listener connection in the application node (the
master instance of the ClusterObjectManager is in the application node
and waits for acks from the rendering nodes).

I also was wondering whether there are any other changes I should be
aware of. From this log:
https://equalizer.svn.sourceforge.net/svnroot/equalizer/tags/release-1.0-alpha/CHANGES.txt
it doesn't seem, but I can't find the Changelogs for 0.9.0 to pre 1.0
versions.

Thanks for all the info,
Juan

_______________________________________________
eq-dev mailing list
eq-...@equalizergraphics.com
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Stefan Eilemann

unread,
Feb 3, 2011, 5:41:23 AM2/3/11
to Equalizer Developer List
Hi Juan,

another spammed message...

On 10. Jan 2011, at 20:11, Juan Hernando wrote:

> In terms of the old API, I have a distributed object deriving from eq::net::Object that overrides attachToSession to register some commands to facilitate the mapping of additional distributed objects and runtime. I called this object ClusterObjectManager
>
> I was making extensive use of the lower level eq::net namespace. But now I see that all the rendering independent cluster stuff has moved into its own library (Collage) and the namespace has changed. That seems to be a simple namespace change.

Mostly, but we also took the liberty to clean some things up. Most notably, Session has disappeared, along with it ID generation since object simply generate an UUID themselves. A good entry point is <http://www.libcollage.net/documents/Developer/API/namespaceco.html#_details>.

> Another change I've seen is that makeThreadSafe has been removed. I'm not sure about the internal threading of Equalizer regarding command queues and distributed objects so I don't know what do I have to do to guarantee thread-safety now.

Are you talking about Object::makeThreadSafe()? The only method affected is sync: This function is not thread safe, that is, calling sync() simultaneously from multiple threads has to be protected by the caller using a mutex.

> I'd also like to know a little more about the replacements for net::Session (I was using Object::getSession to map objects)

The best is to use the eq::Config, since this automatically sets the latency and retains deregistered object data for latency frames (buffered objects only). Otherwise you can use your co::LocalNode to manage objects. For the most part, eq::Config simply forwards to co::LocalNode.

> and whether I may need to create a listener connection in the application node (the master instance of the ClusterObjectManager is in the application node and waits for acks from the rendering nodes).

The appNode always needs a connection when there are other nodes present to receive events. It is recommended to add it in the config file, as this will now be picked up automatically. For old config files (1.0) the converter to 1.1 does this. See also:

RFE 2809019: Specify connection from a config file when using appNode
RFE 3156103: Add default appNode connection for multi-node configs

> I also was wondering whether there are any other changes I should be aware of. From this log: https://equalizer.svn.sourceforge.net/svnroot/equalizer/tags/release-1.0-alpha/CHANGES.txt it doesn't seem, but I can't find the Changelogs for 0.9.0 to pre 1.0 versions.

You can't find them because they don't exist. I'm not aware of anything right now, but there are a lot of changes between 0.9 and 1.0-alpha. Have you read the release notes?


HTH,

Stefan.

Juan Hernando

unread,
Feb 9, 2011, 4:32:35 AM2/9/11
to Equalizer Developer List
Hi Stefan,
I've been pretty busy during the last month so I didn't have time to
finish this port.
Good to know there's a website with reference docs for Collage.
Hopefully your other hints will be valuable for the remaining changes.
Thanks,
Juan
Reply all
Reply to author
Forward
0 new messages