CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
version_info.h
1
2#ifndef _ASPOSE_VERSION_INFO_H
3#define _ASPOSE_VERSION_INFO_H
4
5#include "defines.h"
6
7#include <cstdint>
8#include <cstddef>
9#include <cstdio>
10
11namespace CodePorting { namespace Translator { namespace Cs2Cpp {
12
15#define GIT_REVISION_SIZE 40
18#define GIT_REVISION_BUFFER_SIZE (GIT_REVISION_SIZE + 1)
19
20#define MODULE_NAME_BUFFER_SIZE FILENAME_MAX
21
24{
27 static constexpr std::size_t ENCODED_VERSION_INFO_DELIMITER_SIZE = 1;
28
32 static constexpr std::size_t ENCODED_VERSION_INFO_VERSION_SEGMENT_SIZE = 5;
33
37
42
45
50
59
61 char asposecpplib_revision[GIT_REVISION_BUFFER_SIZE];
62
87
91 ASPOSECPP_SHARED_API bool operator==(const VersionInfo& other) const;
95 ASPOSECPP_SHARED_API bool operator!=(const VersionInfo& other) const;
96
99 ASPOSECPP_SHARED_API void encode(char(&encoded_vi)[ENCODED_VERSION_INFO_SIZE]) const;
100};
101
104{
106 wchar_t module_name[MODULE_NAME_BUFFER_SIZE];
109};
110
112ASPOSECPP_SHARED_API void _getVersionInfo(VersionInfo& versionInfo);
114ASPOSECPP_SHARED_API void _registerVersionMismatch(const MismatchedVersionInfo& mvi);
120ASPOSECPP_SHARED_API int _getMismatchedVersionInfo(MismatchedVersionInfo* mvi_arr, int mvi_arr_size, bool* all_items_returned);
121
122} } } // namespace CodePorting.Translator.Cs2Cpp
123
124#endif // _ASPOSE_VERSION_INFO_H
void _registerVersionMismatch(const MismatchedVersionInfo &mvi)
Registers information on version info mismatch.
int _getMismatchedVersionInfo(MismatchedVersionInfo *mvi_arr, int mvi_arr_size, bool *all_items_returned)
Fills mismatch version info array.
void _getVersionInfo(VersionInfo &versionInfo)
Gets version info for system library.
Definition: iobjects_holder.h:10
Information on version info mismatch between system module and translated module.
Definition: version_info.h:104
wchar_t module_name[MODULE_NAME_BUFFER_SIZE]
Name of the module that triggered error.
Definition: version_info.h:106
VersionInfo product_version_info
Version info of translated product module.
Definition: version_info.h:108
Describes codeporting.translator.cs2cpp.framework version which includes revision and compiler option...
Definition: version_info.h:24
bool defined_ENABLE_EXTERNAL_REFCOUNT
Whether ENABLE_EXTERNAL_REFCOUNT define was set.
Definition: version_info.h:76
static constexpr std::size_t ENCODED_VERSION_INFO_PRECOMPILER_DEFINITIONS_BITMAP_SIZE
Size of compiler definitions bitmap which is encoded into version info.
Definition: version_info.h:44
bool defined___DBG_GARBAGE_COLLECTION
Whether ___DBG_GARBAGE_COLLECTION define was set.
Definition: version_info.h:66
bool defined_ASPOSE_NO_ATOMIC_REFCOUNT
Whether ASPOSE_NO_ATOMIC_REFCOUNT define was set.
Definition: version_info.h:74
static constexpr std::size_t ENCODED_VERSION_INFO_SIZE
Full size of encoded version info. Encoded version info has following format: [asposecpplib_version]#...
Definition: version_info.h:49
bool defined_ENABLE_MAKE_OBJECT_LEAKAGE_DETECTION
Whether ENABLE_MAKE_OBJECT_LEAKAGE_DETECTION define was set.
Definition: version_info.h:86
static constexpr std::size_t ENCODED_VERSION_INFO_FOUR_SEGMENT_VERSION_STRING_SIZE
The size of a string representing a version which has following format: <int16_t>....
Definition: version_info.h:40
bool defined_CALL_DISPOSE
Whether CALL_DISPOSE define was set.
Definition: version_info.h:80
bool defined___DBG_FOR_EACH_MEMEBR
Whether __DBG_FOR_EACH_MEMBER define was set.
Definition: version_info.h:64
bool defined_SHOW_DISPOSE_GUARD_MESSAGE
Whether SHOW_DISPOSE_GUARD_MESSAGE define was set.
Definition: version_info.h:84
bool operator==(const VersionInfo &other) const
Compares version info values.
bool defined_ENABLE_CYCLES_DETECTION_EXT
Whether ENABLE_CYCLES_DETECTION_EXT define was set.
Definition: version_info.h:82
char asposecpplib_revision[GIT_REVISION_BUFFER_SIZE]
Git revision from which codeporting.translator.cs2cpp.framework library headers were taken and/or lib...
Definition: version_info.h:61
static constexpr std::size_t ENCODED_VERSION_INFO_VERSION_SEGMENTS_DELIMITER_SIZE
Size of version number parts delimiter. '.' is used a a delimiter between version segments.
Definition: version_info.h:36
uint16_t asposecpplib_version_major
Major codeporting.translator.cs2cpp.framework library version.
Definition: version_info.h:52
uint16_t asposecpplib_version_minor
Minor codeporting.translator.cs2cpp.framework library version.
Definition: version_info.h:54
bool defined_ASPOSE_COMPARE_BY_REF
Whether ASPOSE_COMPARE_BY_REF define was set.
Definition: version_info.h:70
bool operator!=(const VersionInfo &other) const
Compares version info values.
bool defined_DISABLE_ASTRAL
Whether DISABLE_ASTRAL define was set.
Definition: version_info.h:78
bool defined_ASPOSE_THREADSAFE_DELEGATES
Whether ASPOSE_THREADSAFE_DELEGATES define was set.
Definition: version_info.h:72
void encode(char(&encoded_vi)[ENCODED_VERSION_INFO_SIZE]) const
Encodes version info into string.
bool defined___DBG_TOOLS
Whether ___DBG_TOOLS define was set.
Definition: version_info.h:68
uint16_t asposecpplib_version_revision
codeporting.translator.cs2cpp.framework library revision.
Definition: version_info.h:56
static constexpr std::size_t ENCODED_VERSION_INFO_VERSION_SEGMENT_SIZE
Version segment max size. Each out of four segments is represented with uint16_t, which represents a ...
Definition: version_info.h:32
uint16_t asposecpplib_version_build
codeporting.translator.cs2cpp.framework library build number.
Definition: version_info.h:58
static constexpr std::size_t ENCODED_VERSION_INFO_DELIMITER_SIZE
Size of encoded version info parts delimiter. '#' is used as a delimiter between version info segment...
Definition: version_info.h:27