platform: Tag classes DirHandle, FileHandle, FileLike, FileSystemHandle, FileSystemLike, LocalFileHandle, LocalFileSystem and PlatformMutex as non copyable.

This avoid unwanted copy of these type which is a programming error.
pull/4594/head
Vincent Coubard 2017-06-20 12:45:52 +01:00
parent 4f7943860a
commit dcbcf64830
7 changed files with 16 additions and 8 deletions

View File

@ -19,6 +19,7 @@
#include <stdint.h> #include <stdint.h>
#include "platform/platform.h" #include "platform/platform.h"
#include "platform/FileHandle.h" #include "platform/FileHandle.h"
#include "platform/NonCopyable.h"
namespace mbed { namespace mbed {
/** \addtogroup platform */ /** \addtogroup platform */
@ -41,7 +42,7 @@ namespace mbed {
* @note Synchronization level: Set by subclass * @note Synchronization level: Set by subclass
* @ingroup platform * @ingroup platform
*/ */
class DirHandle { class DirHandle : private NonCopyable<DirHandle> {
public: public:
virtual ~DirHandle() {} virtual ~DirHandle() {}

View File

@ -22,6 +22,7 @@ typedef int FILEHANDLE;
#include "Callback.h" #include "Callback.h"
#include "platform/mbed_poll.h" #include "platform/mbed_poll.h"
#include "platform/platform.h" #include "platform/platform.h"
#include "platform/NonCopyable.h"
namespace mbed { namespace mbed {
/** \addtogroup platform */ /** \addtogroup platform */
@ -37,7 +38,7 @@ namespace mbed {
* @note Synchronization level: Set by subclass * @note Synchronization level: Set by subclass
* @ingroup platform * @ingroup platform
*/ */
class FileHandle { class FileHandle : private NonCopyable<FileHandle> {
public: public:
virtual ~FileHandle() {} virtual ~FileHandle() {}

View File

@ -19,6 +19,7 @@
#include "platform/mbed_toolchain.h" #include "platform/mbed_toolchain.h"
#include "platform/FileBase.h" #include "platform/FileBase.h"
#include "platform/FileHandle.h" #include "platform/FileHandle.h"
#include "platform/NonCopyable.h"
namespace mbed { namespace mbed {
/** \addtogroup platform */ /** \addtogroup platform */
@ -31,7 +32,7 @@ namespace mbed {
* @note Synchronization level: Set by subclass * @note Synchronization level: Set by subclass
* @ingroup platform * @ingroup platform
*/ */
class FileLike : public FileHandle, public FileBase { class FileLike : public FileHandle, public FileBase, private NonCopyable<FileLike> {
public: public:
/** Constructor FileLike /** Constructor FileLike
* *

View File

@ -21,6 +21,7 @@
#include "platform/FileBase.h" #include "platform/FileBase.h"
#include "platform/FileHandle.h" #include "platform/FileHandle.h"
#include "platform/DirHandle.h" #include "platform/DirHandle.h"
#include "platform/NonCopyable.h"
namespace mbed { namespace mbed {
/** \addtogroup drivers */ /** \addtogroup drivers */
@ -35,7 +36,7 @@ namespace mbed {
* *
* @note Synchronization level: Set by subclass * @note Synchronization level: Set by subclass
*/ */
class FileSystemHandle { class FileSystemHandle : private NonCopyable<FileSystemHandle> {
public: public:
/** FileSystemHandle lifetime /** FileSystemHandle lifetime
*/ */

View File

@ -21,6 +21,7 @@
#include "platform/FileSystemHandle.h" #include "platform/FileSystemHandle.h"
#include "platform/FileHandle.h" #include "platform/FileHandle.h"
#include "platform/DirHandle.h" #include "platform/DirHandle.h"
#include "platform/NonCopyable.h"
namespace mbed { namespace mbed {
/** \addtogroup platform */ /** \addtogroup platform */
@ -35,7 +36,7 @@ namespace mbed {
* @note Synchronization level: Set by subclass * @note Synchronization level: Set by subclass
* @ingroup platform * @ingroup platform
*/ */
class FileSystemLike : public FileSystemHandle, public FileBase { class FileSystemLike : public FileSystemHandle, public FileBase, private NonCopyable<FileSystemLike> {
public: public:
/** FileSystemLike lifetime /** FileSystemLike lifetime
*/ */

View File

@ -22,6 +22,7 @@
#include "platform/FileSystemLike.h" #include "platform/FileSystemLike.h"
#include "platform/PlatformMutex.h" #include "platform/PlatformMutex.h"
#include "platform/NonCopyable.h"
namespace mbed { namespace mbed {
/** \addtogroup platform */ /** \addtogroup platform */
@ -34,7 +35,7 @@ FILEHANDLE local_file_open(const char* name, int flags);
* @class LocalFileHandle * @class LocalFileHandle
* @ingroup platform * @ingroup platform
*/ */
class LocalFileHandle : public FileHandle { class LocalFileHandle : public FileHandle, private NonCopyable<LocalFileHandle> {
public: public:
LocalFileHandle(FILEHANDLE fh); LocalFileHandle(FILEHANDLE fh);
@ -98,7 +99,7 @@ protected:
* not exit, you will need to hold down reset on the mbed Microcontroller to be able to see the drive again! * not exit, you will need to hold down reset on the mbed Microcontroller to be able to see the drive again!
* @ingroup platform * @ingroup platform
*/ */
class LocalFileSystem : public FileSystemLike { class LocalFileSystem : public FileSystemLike, private NonCopyable<LocalFileSystem> {
// No modifiable state // No modifiable state
public: public:

View File

@ -18,6 +18,8 @@
#ifndef PLATFORM_MUTEX_H #ifndef PLATFORM_MUTEX_H
#define PLATFORM_MUTEX_H #define PLATFORM_MUTEX_H
#include "platform/NonCopyable.h"
#ifdef MBED_CONF_RTOS_PRESENT #ifdef MBED_CONF_RTOS_PRESENT
#include "rtos/Mutex.h" #include "rtos/Mutex.h"
typedef rtos::Mutex PlatformMutex; typedef rtos::Mutex PlatformMutex;
@ -25,7 +27,7 @@ typedef rtos::Mutex PlatformMutex;
/** A stub mutex for when an RTOS is not present /** A stub mutex for when an RTOS is not present
* @ingroup platform * @ingroup platform
*/ */
class PlatformMutex { class PlatformMutex : private mbed::NonCopyable<PlatformMutex> {
public: public:
PlatformMutex() { PlatformMutex() {
// Stub // Stub