GrabBag/Module/ShareMem/Inc/IVrShareMem.h

105 lines
3.0 KiB
C
Raw Normal View History

#ifndef IVRSHAREMEM_H
#define IVRSHAREMEM_H
#include <string>
#include "VrShareMem_global.h"
/**
* @brief
*
*/
class VRSHAREMEM_EXPORT IVrShareMem
{
public:
virtual ~IVrShareMem() = default;
/**
* @brief
* @param name
* @param size
* @param create truefalse
* @return SUCCESS(0)VrError.h中定义的错误码
*/
virtual int CreateOrOpen(const std::string& name, size_t size, bool create = true) = 0;
/**
* @brief
* @return nullptr
*/
virtual void* MapView() = 0;
/**
* @brief
* @return SUCCESS(0)VrError.h中定义的错误码
*/
virtual int UnmapView() = 0;
/**
* @brief
* @return SUCCESS(0)VrError.h中定义的错误码
*/
virtual int Close() = 0;
/**
* @brief
* @return
*/
virtual size_t GetSize() const = 0;
/**
* @brief
* @return nullptr
*/
virtual void* GetMappedAddress() const = 0;
/**
* @brief
* @return truefalse
*/
virtual bool IsValid() const = 0;
/**
* @brief
* @param offset
* @param data
* @param size
* @return VrError.h中定义的错误码
*/
virtual int WriteData(size_t offset, const void* data, size_t size) = 0;
/**
* @brief
* @param offset
* @param buffer
* @param size
* @return VrError.h中定义的错误码
*/
virtual int ReadData(size_t offset, void* buffer, size_t size) = 0;
/**
* @brief
* @param timeout -1
* @return SUCCESS(0)VrError.h中定义的错误码
*/
virtual int Lock(int timeout = -1) = 0;
/**
* @brief
* @return SUCCESS(0)VrError.h中定义的错误码
*/
virtual int Unlock() = 0;
};
/**
* @brief
* @return
*/
VRSHAREMEM_EXPORT IVrShareMem* CreateShareMemInstance();
/**
* @brief
* @param instance
*/
VRSHAREMEM_EXPORT void DestroyShareMemInstance(IVrShareMem* instance);
#endif // IVRSHAREMEM_H