Файл:DataStorageRelations.png

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску

Исходный файл(4000 × 1110 пикселей, размер файла: 685 Кб, MIME-тип: image/png)

Отношения классов источников данных. Код omcd.

dnl 1) Delete all inline comments: Find: "\s*\/\/[^\n]*$" Replace: ""
dnl 2) Delete all multiline comments: Find: "\/\*.*?\*\/" Replace: ""
dnl 3) Transform interfaces making CLASS_BEGIN, CLASS_END and NODE_NAME and insert a line terminator '\/\/' for the last step. 
dnl		Find: "\bstruct (I\w*?)\:(I\w*?)\s*?\{(.*?)\};" Replace: "CLASS_BEGIN\($1\)\/\/\r\n$3CLASS_END\/\/\r\n\r\nNODE_NAME\($1\) \-\> NODE_NAME\($2\) \[INHERITANCE\]\/\/"
dnl 4) Remove SAL. Find: "(?<!(b\(|\?\|))\b(_In_([A-Za-z_]*_)?|_Out_([A-Za-z_]*_)?|_Deref_out_([A-Za-z_]*_)?|_Pre_([A-Za-z_]*_)?|_Post_([A-Za-z_]*_)?)\b\s*(\(.*?\)\s?)?" Replace ""
dnl 5) Remove "std::". Find: "(?<!")\bstd\:\:" Replace ""
dnl 6) Transform methods creating CLASS_MEMBER directives and removing preceding spaces, if any.
dnl		Find: "^\s*virtual\s*_Success_\s*\(\s*_ChsvSucceeded\s*\(\s*return\s*\)\s*\)\s*return_code_t\s*PLATFORM_NATIVE_CALLING_CONVENTION\s*([A-Za-z_]\w*\s*\([\w\s\:\,\*]*\)(?:\s*const)?)\s*noexcept\s*\=\s*0\s*;\s*?$" 
dnl		Replace: "CLASS_MEMBER\($1\)"
dnl 7) Remove line breaks inside tags. Find: "(?<!\bdnl\b)([\w\t \,\.\*\(\)"\]]*)(?:(?:\r\n)\s*)+(?=[\w\t \,\.\*\(\)"\]])(?!(?:CLASS_|NODE_NAME|dnl))" Replace "$1"
dnl 8) Clean lines using the terminator "\/\/" inserted on step 3: Find: "\s*\/\/[^\n]*$" Replace: ""
dnl 9) Delete everything that is not an interface (CLASS_BEGIN, CLASS_END), a method (CLASS_MEMBER), an inheritance pattern (NODE_NAME), an empty string, or a commentary (dnl).
dnl		Find: "^(?!(?:CLASS_|NODE_NAME|dnl))[^\r\n]+?$" Replace ""
dnl 10) Replace more than one consequential empty line with one empty line. Find: "(\r\n){3,}" Replace "\r\n\r\n"

CLASS_BEGIN(IDataStorage)
CLASS_MEMBER(AddRef() const)
CLASS_MEMBER(IsInterfaceAvailable(DataStorageTypeId type_id) const)
CLASS_MEMBER(RepresentAs(DataStorageTypeId type_id, void** ppInterface))
CLASS_END

NODE_NAME(IDataStorage) -> NODE_NAME(InterfaceBase) [INHERITANCE]

CLASS_BEGIN(IConsequentDataStorageInput)
CLASS_MEMBER(Read(IInputStream** ppStream) const)
CLASS_END

NODE_NAME(IConsequentDataStorageInput) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IConsequentDataStorageOutput)
CLASS_MEMBER(Write(IOutputStream** ppStream))
CLASS_END

NODE_NAME(IConsequentDataStorageOutput) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IConsequentDataStorage)
CLASS_MEMBER(Read(IInputStream** ppStream) const)
CLASS_MEMBER(Write(IOutputStream** ppStream))
CLASS_END

NODE_NAME(IConsequentDataStorage) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IArbitrarilyAccessedDataStorageInput)
CLASS_MEMBER(ReadOf(const void* pKey, uint32_t cbKey, IInputStream** ppStream) const)
CLASS_END

NODE_NAME(IArbitrarilyAccessedDataStorageInput) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IArbitrarilyAccessedDataStorageOutput)
CLASS_MEMBER(WriteOf(const void* pKey, uint32_t cbKey, IOutputStream** ppStream))
CLASS_END

NODE_NAME(IArbitrarilyAccessedDataStorageOutput) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IArbitrarilyAccessedDataStorage)
CLASS_MEMBER(ReadOf(const void* pKey, uint32_t cbKey, IInputStream** ppStream) const)
CLASS_MEMBER(WriteOf(const void* pKey, uint32_t cbKey, IOutputStream** ppStream))
CLASS_END

NODE_NAME(IArbitrarilyAccessedDataStorage) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IContiguousDataStorageInput)
CLASS_MEMBER(Read(IInputStream** ppStream) const)
CLASS_MEMBER(ReadAt(uint64_t iOffset, IInputStream** ppStream) const)
CLASS_MEMBER(GetElementCount(uint64_t* pcSize) const)
CLASS_MEMBER(GetByteSize(uint64_t* pcbSize) const)
CLASS_MEMBER(GetMaxByteSize(uint64_t* pcbMaxSize) const)
CLASS_END

NODE_NAME(IContiguousDataStorageInput) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IContiguousDataStorageOutput)
CLASS_MEMBER(Write(IOutputStream** ppStream))
CLASS_MEMBER(WriteTo(uint64_t iOffset, IOutputStream** ppStream))
CLASS_MEMBER(GetMaxByteSize(uint64_t* pcbMaxSize) const)
CLASS_MEMBER(EraseContent())
CLASS_END

NODE_NAME(IContiguousDataStorageOutput) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IContiguousDataStorage)
CLASS_MEMBER(Read(IInputStream** ppStream) const)
CLASS_MEMBER(ReadAt(uint64_t iOffset, IInputStream** ppStream) const)
CLASS_MEMBER(GetElementCount(uint64_t* pcSize) const)
CLASS_MEMBER(GetByteSize(uint64_t* pcbSize) const)
CLASS_MEMBER(GetMaxByteSize(uint64_t* pcbMaxSize) const)
CLASS_MEMBER(Write(IOutputStream** ppStream))
CLASS_MEMBER(WriteTo(uint64_t iOffset, IOutputStream** ppStream))
CLASS_MEMBER(EraseContent())
CLASS_MEMBER(DeleteBlock(uint64_t cBlockOffset, uint64_t cBlockSize))
CLASS_END

NODE_NAME(IContiguousDataStorage) -> NODE_NAME(IDataStorage) [INHERITANCE]

CLASS_BEGIN(IInMemoryDataStorageInput)
CLASS_MEMBER(GetPtr(const void** ppBuffer, size_t* pcbBuffer) const)
CLASS_END

NODE_NAME(IInMemoryDataStorageInput) -> NODE_NAME(IContiguousDataStorageInput) [INHERITANCE]

CLASS_BEGIN(IInMemoryDataStorage)
CLASS_MEMBER(GetPtr(void** ppBuffer, size_t* pcbBuffer))
CLASS_MEMBER(ReleaseBufferOwnership(void** ppBuf, size_t* pcbBuf, IAllocator** ppAlloc))
CLASS_END

NODE_NAME(IInMemoryDataStorage) -> NODE_NAME(IContiguousDataStorage) [INHERITANCE]

CLASS_BEGIN(IAssociativeDataStorageInput)
CLASS_MEMBER(FindNode(const void* pKey, uint32_t cbKey, IDataStorage** ppNode) const)
CLASS_END

NODE_NAME(IAssociativeDataStorageInput) -> NODE_NAME(IArbitrarilyAccessedDataStorageInput) [INHERITANCE]

CLASS_BEGIN(IAssociativeDataStorageOutput)
CLASS_MEMBER(CreateNode(const void* pKey, uint32_t cbKey, IDataStorage** ppNode))
CLASS_MEMBER(DeleteNode(const void* pKey, uint32_t cbKey))
CLASS_END

NODE_NAME(IAssociativeDataStorageOutput) -> NODE_NAME(IArbitrarilyAccessedDataStorageOutput) [INHERITANCE]

CLASS_BEGIN(IAssociativeDataStorage)
CLASS_MEMBER(FindNode(const void* pKey, uint32_t cbKey, IDataStorage** ppNode) const)
CLASS_MEMBER(CreateNode(const void* pKey, uint32_t cbKey, IDataStorage** ppNode))
CLASS_MEMBER(DeleteNode(const void* pKey, uint32_t cbKey))
CLASS_END

NODE_NAME(IAssociativeDataStorage) -> NODE_NAME(IArbitrarilyAccessedDataStorage) [INHERITANCE]

NODE_NAME(IContiguousDataStorageInput) -> NODE_NAME(IConsequentDataStorageInput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IContiguousDataStorageInput) -> NODE_NAME(IArbitrarilyAccessedDataStorageInput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IContiguousDataStorageOutput) -> NODE_NAME(IConsequentDataStorageOutput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IContiguousDataStorageOutput) -> NODE_NAME(IArbitrarilyAccessedDataStorageOutput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IContiguousDataStorage) -> NODE_NAME(IConsequentDataStorage) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IContiguousDataStorage) -> NODE_NAME(IArbitrarilyAccessedDataStorage) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IContiguousDataStorage) -> NODE_NAME(IContiguousDataStorageInput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IContiguousDataStorage) -> NODE_NAME(IContiguousDataStorageOutput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IInMemoryDataStorage) -> NODE_NAME(IInMemoryDataStorageInput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IConsequentDataStorage) -> NODE_NAME(IConsequentDataStorageInput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IConsequentDataStorage) -> NODE_NAME(IConsequentDataStorageOutput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IArbitrarilyAccessedDataStorage) -> NODE_NAME(IArbitrarilyAccessedDataStorageInput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IArbitrarilyAccessedDataStorage) -> NODE_NAME(IArbitrarilyAccessedDataStorageOutput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IAssociativeDataStorage) -> NODE_NAME(IAssociativeDataStorageInput) [INHERITANCE, label="r", style = "dashed"]
NODE_NAME(IAssociativeDataStorage) -> NODE_NAME(IAssociativeDataStorageOutput) [INHERITANCE, label="r", style = "dashed"]

История файла

Нажмите на дату/время, чтобы просмотреть, как тогда выглядел файл.

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий20:36, 17 апреля 2017Миниатюра для версии от 20:36, 17 апреля 20174000 × 1110 (685 Кб)Андрей Чусов (обсуждение | вклад)Отношения классов источников данных.

Следующая 1 страница использует данный файл:

Метаданные