All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog. Starting with version 2.0.0 this project adheres to Semantic Versioning.
1.8.2 - 2019-11-14
Version 1.8.2 of the Ember+ SDK is a maintenance release that fixes two issues recently discovered in the libember C++ library.
- libember: Fixed an incorrect assumption about the length of multibyte encoded values. (#102).
- libember: Fixed a missing
null
pointer check, before use (#103).
1.8.0 - 2019-02-14
Version 1.8.0 of the Ember+ SDK is a feature release that introduces various new features to the GLOW DTD.
- Multiple schema references per node.
- Node templates to reduce redundant traffic.
- Parameters may now have the value
null
to indicate that no value is present.
Apart from this new feature this release also contains numerous fixes and stability improvements.
Please note that that version 1.8.0 is a best effort release to provide a stable reference for all features introduced since the beginning of 2014. Going forward several structural changes will be made to the projects and its libraries:
- The Ember+ protocol will enter a feature frozen maintenance mode meaning there will be no extensions in the foreseeable future as it is now considered feature complete.
- All libraries will be split into separate git repositories. The monolithic repository will be maintained using subtree copies generated by git subrepo.
- All libraries will transition to individual, semantic versioning starting with version 2.0.0.
Apart from these structural changes the current mid-term roadmap foresees transitioning the C++ libraries libs101
, libformula
and libember
to C++17. The C++03 variant will be frozen at version 1.8.0 with the exception of important fixes that may be backported by popular request.
- All: Added CMake build instructions.
- All: Added support for the new GLOW DTD features.
- libember: Added convenience operations
front()
,pop_front()
andpop_back()
toObjectIdentifier
. - libember: Added support for floating point type NaN encoding and decoding.
- libember_slim: Allow building and using libember_slim as a shared library.
- libember_slim: Added callbacks for
onOtherPackageReceived
,onFirstPackageReceived
andonLastPackageReceived
. The original callbackonPackageReceived
still exists, but is not only invoked when an ember packet has been decoded. - libs101: The encoder and decoder now support the non-escaping variant.
- TinyEmberPlus: TinyEmberPlus is now built against Qt5.
- All: Fixed issues #51, #52 and #54.
- libember: Fixed issues #26, #45 and #48.
- libember: Fixed potential memory leaks during decoding in
DomReader
. - libember: Fixed a memory leak caused by
ListContainer::eraseImpl()
not freeing memory allocated to the erased nodes. - libember: Fixed
StreamBuffer
not swapping the maximum size. - libember_slim: Fixed issue #38.
- EmberLib.Net: Fixed
NullReferenceExceptions
in error cases. - libformula:
Term::compute()
no longer uses global state.
1.6.2 - 2014-02-26
Version 1.6.2 of the Ember+ SDK is a maintenance release that fixes an important oversight in version 1.6.0 with regard to the correct spelling of the newly introduced schemaIdentifiers
attribute.
In addition to this functional change this release increases stability and addresses a few performance problems. All users of the 1.6.0 version are encouraged to update to this release as soon as possible.
- Added a method called compliesWithSchema which tests whether a schema is part of the schema identifier collection of a node, parameter or matrix.
- Updated DTD version implemented by the various libraries to 2.31 which includes a minor change to the naming of the schemaIdentifier attribute.
Please note that this requires a small change to client code that uses the accessors, because the spelling has been changed from the singular form "schemaIdentifier" to the plural form "schemaIdentifiers". - Fixed potential memory leaks during decoding in
DomReader
. - Optimized the equality comparison of two type erased iterator instances, yielding a massive performance improvement in typical loop constructs.
- Corrected the signedness of a few temporary variables and integral constants used in the implementation.
- Removed extraneous semicolons that caused compiler warnings on high warning-levels.
- Removed obsolete entries from the Doxygen configuration and corrected wrong output directories in the Doxygen configuration.
1.6.0 - 2014-02-26
Version 1.6.0 of the Ember+ SDK is a feature release that introduces the new Schema extension to the GLOW DTD.
Apart from this new feature this release also contains numerous fixes and stability improvements.
- Added a Ruby script that converts the premake4 generated VS2012 solution to VS2013 because the automated conversion no longer works reliable strange licensing reasons.
- Added traits to determine the property type from a GLOW type.
- Added
libember::ber::ObjectIdentifier::push_back(..)
andlibember::ber::ObjectIdentifier::push_front(..)
to allow building a path iteratively. Changed the underlying container tostd::deque<..>
in order to supportpush_front(..)
. - Added
libember::ber::ObjectIdentifier::back()
to access the last element of the OID. - Added explicit constructor taking an argument of type value_type to some of the enum-wrappers (
CommandType
,MessageType
,Dtd
).PackageFlag
andByte
already have a non-explicit constructor taking an argument of typevalue_type
. - Added equality operators for some of the enum-wrapper types.
- Declared the step property of the parameter as deprecated.
The documentation contains a hint that this property may also be removed in future releases of the libraries. - Declared
GlowRootElementCollection::create()
as deprecated. - Corrected target prefix for libember and libember_slim to avoid the double "liblib" prefix on Unix like systems.
- Modified linker options to set RPATH to '.' on Unix like systems.
- Added (currently failing) test for issue #6.
- Fixed issue #13, by changing the visibility of the default constructor of
GlowRootElementCollection
and setting the root tag in the default constructor. - Fixed issue #14 by replacing the standard container with a more suitable alternative and storing the stack elements by value.
- Fixed issue #15 by Replacing C++11 specific constructs in libember with their C++03 equivalents and changing the C++ language standard on non-Windows platforms from C++11 to C++03.
- Fixed issue #17, pass (type-erased) iterator by const-reference, because copying it is expensive.
- Fixed macro to generate type-traits, which was causing errors under GCC.
- Fixed
GlowTupleItemDescription::type()
always returningParameterType::None
. - Fixed a lot of warnings at high warning levels.
- Fixed errors reported by cppcheck.
- Fixed Simian warnings in various parts of the Ember+ libraries.
- Fixed a broken link in the Ember+ documentation.
1.4.0 - 2013-07-08
Version 1.4.0 of the Ember+ SDK is a feature release that introduces provider specified callable functions the GLOW DTD.
Apart from this new feature this release also contains numerous fixes and stability improvements.
- Added a method to
glow::Value
to convert it to an instance ofber::Value
. - Added methods
hasEnumeration
andeffectiveParameter
method toGlowParameterBase
. - Added the enumeration entry
ParameterType::None
to indicate that the type is unknown or not present. - The methods
minimum
,maximum
,value
anddefaultValue
of the classGlowParameterBase
now return an instance ofValue
orMinMax
with the parameter type set toNone
when the requested value is not present. - Added comparison operators for the
ObjectIdentifier
class.
- Fixed issues #4, #5, #10, #11 and #12.
- Fixed encoding of real numbers that treated the mantiassa as signed.
- Fixed encoding of unsigned ling values that caused the encoded value to contain a leading zero.
- Fixed
DomReader
not decoding values of typeOctetString
. - Fixed wrong GLOW tag of
EmberPlus-Glow.MatrixContents.labels
.
Unfortunately no detailed changelog is available for this version.
Unfortunately no detailed changelog is available for this version.
Unfortunately no detailed changelog is available for this version.
Unfortunately no detailed changelog is available for this version.