Latest release of The Server Framework: 7.3
Version 7.3 of The Server Framework was released today.
This release includes bug fixes and new code.
As always, see the release notes here, for full details of all changes.
- Fixed a bug with
JetByteTools::Core::CCallbackTimerWheelwhich would show up if the time provider was providing ticks at a different granularity than the granularity of the wheel.
- Fixed a bug in
CDatagramSocketServerwhere the buffers returned in write and sendTo completion callbacks had an incorrect number of bytes set as ‘used’.
- Clearly identify any open source software used by the framework and make it easy to disable it or see the relevant license details.
- Preparations for making the code compile on other platforms.
- More libraries now require that you include their Admin.h files in your Config.h file if you wish to use them.
- Removed some code used during testing and debugging of the framework where the code is either unsupported in the forthcoming 8.0 release or broken/untested/unused.
- Added support for a new method of dynamic object leak tracking.
- Removed the need for WinsockWrapper.h any reference to this header should be removed.
- Rationalised the nascent dynamic debug log functionality to bridge the gaps between the 6.9.x customer specific code and the 8.0 (different customer) specific code to something that works in a way that works for everyone. Framework libraries now often have a
CDebugLogclass which includes their debug log functionality and this can be dynamically adjusted during runtime.
CAllFrameworkDebugLogswhich automatically locates and initialises all available framework dynamic debug logs.
- Made it possible to turn off a
OutputEx()debug log output by setting
JETBYTE_CORE_ENABLE_DEBUG_TRACE_OUTPUTto 0 in your Config.h
CCachedValueTickCountProviderwhich only queries the current tick count on the first call and then returns the same value.
CFixedValueTickCountProviderwhich returns the value given to it in its constructor.
CHighResolutionTickCountProviderwhich uses the highest resolution tick count source for the operating system.
TDynamicObjectTrackerfor use by derived classes that can track leaks in dynamically allocated object instances.
CDynamicObjectTrackerCollectionwhich allows you to report on leaked objects.
- Changed the
JetByteTools::Core::IQueueTimersinterface so that implementations can report back to the caller if the operation performed has changed the first timer that will expire. This allows for an optimisation to threaded timer queues so that they need not wake the timer thread if the next timer to expire has not changed.
CThreadBasewhich deals with various thread event listeners in a thread-implementation agnostic manner.
- Thread pools now work in terms of
OVERLAPPEDas this makes cross platform code easier.
- Expanded the functionality of
IMonitorThreadPoolso that all thread pools can now be monitored by the same interface.
- Added non-throwing, bool-returning, “try” operations to
CSimpleMessageLogcan now include thread names in the log information.
CActivatableObjectcan now have data added using an array of
CActivatableObjectcan now have a custom command processor callback function added with each command.
CActivatableObject::CommandWrapperExwhich is a wrapper that deals in terms of arrays of
CActivatableObject::CommandProcessorCallback::OnActivatableObjectProcessCommandEx()which allows you to process a ‘pass through’ command that uses arrays of
Datastructures as is rather than as a contiguous single block of data.
JETBYTE_WIN32_DEPRECATE_OPTEXwhich defaults to 1.
- Removed the embedded
WSABUFstructure from the
IBufferinterface. This is only required when the I/O call is issued and does not need to exist after the function call returns and so does not need to be part of the buffer itself. This also removes the need for the
SetupXmethods that were previously called prior or executing I/O operations.
JETBYTE_IO_DEPRECATE_BUFFER_USER_DATAwhich defaults to 0.
JETBYTE_IO_DEPRECATE_SEQUENCED_BUFFER_COLLECTIONwhich defaults to 0.
JETBYTE_IO_DEPRECATE_BUFFER_CHAIN_CUSTOM_BUFFER_INDEXwhich defaults to 0.
- Added lots of wrappers for various aspects of OpenSSL that are used by SRTP and streaming media.
CSharedMemoryMutexPerformanceDataBlockwhich can be used when the Optex version has been deprecated. This version is also more reliable as it can’t be left orphaned.
- Adjusted how the
CAddressIPv4constructor works with the supplied dottedIPorName string, it now tries to convert names if it can, rather than just assuming it was a dotted ip…
- Adjusted how the
CAddressIPv4constructor works with the supplied addressAsString string, it now tries to convert names if it can, rather than just assuming it was a dotted ip…
- Adjusted how the
CAddressIPv6constructor works with the supplied addressAsString string, it now tries to convert names if it can, ratherthan just assuming it was a dotted ip…
CNetworkInterfaceAddresseswhich is now used to list available interfaces rather than using the zero argument version of
CAddressInfo, which has been removed.