
This file lists all changes in the public Collage API, latest on top:

07/Mar/2013
  PluginRegistry, Plugin and compressors are moved to Lunchbox.
  co::Global still maintains the global Collage plugin registry.

11/Feb/2013
  Node::useMulticast has been renamed to getMulticast. This method, and
  the previous getMulticast have been made protected.
  Node::getConnection has a flag to prefer a multicast connection.

28/Jan/2013
  The program name and working directory have been moved from co::Global
  to eq::Global.

06/Sep/2012
  New stream-based commands supersedes packet-based messaging. New send()
  methods in co::Node & co::Object replaces old API. All packets are superseded
  by NodeOCommand & ObjectOOCommand for sending commands, and by Command &
  ObjectCommand for receiving commands.

09/Aug/2012
  Made co::DataOStream::write private. Use 'os << co::Array< T >( ptr, num )'
  instead.

27/Jul/2012
  Made co::DataIStream::read private. Use 'is >> co::Array< T >( ptr, num )'
  instead.

-------------------------------Equalizer 1.4---------------------------------

-------------------------------Equalizer 1.2---------------------------------

25/Oct/2011
  Removed co::Object::commitNB and commitSync since request is no longer
  dispatched to command thread. Use commit instead.

03/Jun/2011
  Added a return value and timeout to co::LocalNode::acquireSendToken(),
  see method documentation.

-------------------------------Equalizer 1.0---------------------------------

14/Mar/2011
  Changed object mapping behavior when using a concrete version from:
    If the requested version does no longer exist, mapObject() will fail.
  to:
    If a concrete requested version no longer exists, mapObject() will
    map the oldest available version.

  Moved include/GL to include/eq/GL. Use '#include <eq/gl.h>' to include
  OpenGL headers only.

01/Mar/2011
  Added new 'incarnation' parameter to co::Object::commit, with a
  default parameter selecting the previous behavior for commit wrt auto
  obsoletion. co::Object::commitNB has the same new parameter, with no
  default value.

----------------------------Equalizer 1.0 beta-------------------------------

14/Jan/2011
  libEqualizer links libCollage dynamically, not statically.
  All libraries use correct versioning as mandated by the operating system.

---------------------------Equalizer 1.0 alpha-------------------------------

20/Dec/2010
  Renamed the eq::net namespace to co(llage). Change all prefixes from
  eq::net to co or use EQ_USE_DEPRECATED to declare an 'eq::net'
  namespace alias.

14/Dec/2010
  Removed net::Session. Use net::LocalNode or eq::Config of object
  registration and mapping. The latter retains buffered object data for
  mapping up to latency frames.

29/Nov/2010
  No automatic listener connections are created for the application
  node. Existing multi-node configs will fail if they do not configure a
  listener. AppNode listeners can be added either by specifying them in
  the configuration filem by using the --eq-listen command line option
  or programmatically by adding connection descriptions before
  Client::initLocal().

22/Nov/2010
  Replace object identifiers with UUIDs
    Replace defines EQ_ID_INVALID with the new type by UUID::ZERO for object identifiers
    Removed defines EQ_ID_MAX, NONE, INVALID, ANY for object identifiers
  Replace object versions with uint128_t
    Master versions have always 0 for the 64bit high value

  change frameID type to uint128_t for methods: frameReadback, frameAssemble,
   frameDraw, frameClear, frameStart, startFrame, frameViewStart,
   frameViewFinish, frameFinish, frameDrawFinish, frameTasksFinish
   in the classes window, channel, pipe, node and config.

  change initID type to uint128_t for configInit in pipe, window,
  channel and config

  bool Pipe::configInitSystemPipe( const uint128_t& initID );
  bool Window::configInitSystemWindow( const eq::uint128_t& initID );
  bool Window::configInitGL( const eq::uint128_t& initID );
  bool Session::mapObject( Object* object, const base::UUID& id,
                           const uint128_t& version = VERSION_OLDEST );
  uint32_t Session::mapObjectNB( Object* object, const base::UUID& id,
                                 const uint128_t& version = VERSION_OLDEST );
  void Object::notifyNewHeadVersion( const uint128_t& version );
  uint128_t Object::getOldestVersion() const;
  uint128_t Object::getVersion() const;
  uint128_t Object::getHeadVersion() const;
  uint128_t Object::sync( const uint128_t& version = VERSION_HEAD );
  uint128_t Object::commit();
  uint128_t Object::commitSync( const uint32_t commitID );
  base::UUID Object::getID() const
    replaces
  bool Pipe::configInitSystemPipe( const uint32_t initID );
  bool Window::configInitSystemWindow( const uint32_t initID );
  bool Window::configInitGL( const uint32_t initID );
  bool Session::mapObject( Object* object, const uint32_t id,
                           const uint128_t& version = VERSION_OLDEST );
  uint32_t Session::mapObjectNB( Object* object, const uint32_t id,
                                 const uint128_t& version = VERSION_OLDEST );
  void Object::notifyNewHeadVersion( const uint32_t version );
  uint32_t Object::getOldestVersion() const;
  uint32_t Object::getVersion() const;
  uint32_t Object::getHeadVersion() const;
  uint32_t Object::sync( const uint32_t version = VERSION_HEAD );
  uint32_t Object::commit();
  uint32_t Object::commitSync( const uint32_t commitID );
  uint32_t Object::getID() const

20/Oct/2010
  void PluginRegistry::addDirectory( const std::string& path );
  void PluginRegistry::removeDirectory( const std::string& path );
  const Strings& PluginRegistry::getDirectories() const;
    replaces
  const Strings& Global::getPluginDirectories();
  static void Global::addPluginDirectory( const std::string&
  static void Global::removePluginDirectory( const std::string& path );

19/Oct/2010
  eq::net::Node::disconnect( NodePtr ) replaces ::close( NodePtr )

07/Oct/2010
  removed eq::net::Object::makeThreadSafe and isThreadSafe
    application has to lock sync(), if needed
  eq::net::Object::getAutoObsolete replaces getAutoObsoleteCount
