blob: 05a8b10c2bb1f41114c3d1ad1c196c80f895749e [file] [log] [blame]
/*!
* Copyright (c) 2015 by Contributors
* \file naive_storage_manager.h
* \brief Naive storage manager.
*/
#ifndef MXNET_STORAGE_NAIVE_STORAGE_MANAGER_H_
#define MXNET_STORAGE_NAIVE_STORAGE_MANAGER_H_
#include "storage_manager.h"
#include "mxnet/base.h"
namespace mxnet {
namespace storage {
/*!
* \brief Naive storage manager.
*/
template <class DeviceStorage>
class NaiveStorageManager final : public StorageManager {
public:
/*!
* \brief Default constructor.
*/
NaiveStorageManager() = default;
/*!
* \brief Default destructor.
*/
~NaiveStorageManager() = default;
void* Alloc(size_t size) override;
void Free(void* ptr, size_t) override;
void DirectFree(void* ptr, size_t size) override {
DeviceStorage::Free(ptr);
}
private:
DISALLOW_COPY_AND_ASSIGN(NaiveStorageManager);
}; // class NaiveStorageManager
template <class DeviceStorage>
void* NaiveStorageManager<DeviceStorage>::Alloc(size_t size) {
return DeviceStorage::Alloc(size);
}
template <class DeviceStorage>
void NaiveStorageManager<DeviceStorage>::Free(void* ptr, size_t) {
DeviceStorage::Free(ptr);
}
} // namespace storage
} // namespace mxnet
#endif // MXNET_STORAGE_NAIVE_STORAGE_MANAGER_H_