|  | #pragma once | 
|  |  | 
|  | #include <ATen/MapAllocator.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  |  | 
|  | #ifdef SHM_EXPORTS | 
|  | # define SHM_API __declspec(dllexport) | 
|  | #else | 
|  | # define SHM_API __declspec(dllimport) | 
|  | #endif | 
|  |  | 
|  | SHM_API void libshm_init(const char *manager_exec_path); | 
|  |  | 
|  | class SHM_API THManagedMapAllocator : public at::RefcountedMapAllocator { | 
|  | public: | 
|  | THManagedMapAllocator(const char* manager_handle, const char* filename, int flags, ptrdiff_t size) | 
|  | : at::RefcountedMapAllocator(filename, flags, size) {} | 
|  |  | 
|  | static at::DataPtr makeDataPtr(const char* manager_handle, const char* filename, int flags, ptrdiff_t size); | 
|  | static THManagedMapAllocator* fromDataPtr(const at::DataPtr&); | 
|  |  | 
|  | const char* manager_handle() const { return "no_manager"; } | 
|  | }; | 
|  |  | 
|  | #endif |