You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jo...@apache.org on 2015/09/11 02:26:00 UTC
[09/11] mesos git commit: Cleaned up stout/windows.hpp.
Cleaned up stout/windows.hpp.
Review: https://reviews.apache.org/r/37368
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/788580cd
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/788580cd
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/788580cd
Branch: refs/heads/master
Commit: 788580cd808c998b6ae472c27bf8728ca37bf280
Parents: 066a5a8
Author: Alex Clemmer <cl...@gmail.com>
Authored: Thu Sep 10 12:07:46 2015 -0700
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Thu Sep 10 17:15:18 2015 -0700
----------------------------------------------------------------------
.../3rdparty/stout/include/stout/windows.hpp | 89 ++++++++++----------
1 file changed, 46 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/788580cd/3rdparty/libprocess/3rdparty/stout/include/stout/windows.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/windows.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/windows.hpp
index 5f564d2..50e35f4 100644
--- a/3rdparty/libprocess/3rdparty/stout/include/stout/windows.hpp
+++ b/3rdparty/libprocess/3rdparty/stout/include/stout/windows.hpp
@@ -15,9 +15,14 @@
#define __STOUT_WINDOWS_HPP__
+#include <fcntl.h> // For file access flags like `_O_CREAT`.
+
+#include <Windows.h>
+
+
// Definitions and constants used for Windows compat.
//
-// Gathers most of the Windows-compatibility definitions. This makes it
+// Gathers most of the Windows-compatibility definitions. This makes it
// possible for files throughout the codebase to remain relatively free of all
// the #if's we'd need to make them work.
//
@@ -27,12 +32,44 @@
// * globally available throughout both the Stout codebase, and any code
// that uses it (such as Mesos).
-// Normally defined in unistd.h.
+
+// Define constants used for Windows compat. Allows a lot of code on
+// Windows and POSIX systems to be the same, because we can pass the
+// same constants to functions we call to do things like file I/O.
#define STDIN_FILENO 0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
+#define R_OK 0x4
+#define W_OK 0x2
+#define X_OK 0x0 // No such permission on Windows.
+#define F_OK 0x0
+
+#define O_RDONLY _O_RDONLY
+#define O_WRONLY _O_WRONLY
+#define O_RDWR _O_RDWR
+#define O_CREAT _O_CREAT
+#define O_TRUNC _O_TRUNC
+#define O_APPEND _O_APPEND
+
+// TODO(hausdorff): (MESOS-3398) Not defined on Windows. This value is
+// temporary.
+#define MAXHOSTNAMELEN 64
+
+#define PATH_MAX _MAX_PATH
+
+// Corresponds to `mode_t` defined in sys/types.h of the POSIX spec.
+// See large "permissions API" comment below for an explanation of
+// why this is an int instead of unsigned short (as is common on
+// POSIX).
+typedef int mode_t;
+
+// `DWORD` is expected to be the type holding PIDs throughout the Windows API,
+// including functions like `OpenProcess`.
+typedef DWORD pid_t;
+// File I/O function aliases.
+//
// NOTE: The use of `auto` and the trailing return type in the following
// functions are meant to make it easier for Linux developers to use and
// maintain the code. It is an explicit marker that we are using the compiler
@@ -59,32 +96,14 @@ decltype(_close(fd))
}
-// TODO(aclemmer): (MESOS-3398) Not defined on Windows. This value is temporary.
-#define MAXHOSTNAMELEN 64
-
-
-inline auto access(const char* fileName, int accessMode) ->
-decltype(_access(fileName, accessMode))
+// Filesystem function aliases.
+inline auto mkdir(const char* path, mode_t mode) ->
+decltype(_mkdir(path))
{
- return _access(fileName, accessMode);
+ return _mkdir(path);
}
-#define R_OK 0x4
-#define W_OK 0x2
-#define X_OK 0x0 // No such permission on Windows.
-#define F_OK 0x0
-
-// Aliases for file access modes.
-#include <fcntl.h>
-#define O_RDONLY _O_RDONLY
-#define O_WRONLY _O_WRONLY
-#define O_RDWR _O_RDWR
-#define O_CREAT _O_CREAT
-#define O_TRUNC _O_TRUNC
-#define O_APPEND _O_APPEND
-// TODO(josephw): No equivalent for O_NONBLOCK or O_SYNC.
-// Alias for mkstemp (requires io.h).
inline auto mkstemp(char* path) ->
decltype(_mktemp_s(path, strlen(path) + 1))
{
@@ -92,9 +111,6 @@ decltype(_mktemp_s(path, strlen(path) + 1))
}
-// Alias for realpath.
-#define PATH_MAX _MAX_PATH
-
inline auto realpath(const char* path, char* resolved) ->
decltype(_fullpath(resolved, path, PATH_MAX))
@@ -103,17 +119,10 @@ decltype(_fullpath(resolved, path, PATH_MAX))
}
-// Corresponds to `mode_t` defined in sys/types.h of the POSIX spec.
-// See note above for an explanation of why this is an int instead of
-// unsigned short (as is common on POSIX).
-typedef int mode_t;
-
-
-// Alias for mkdir (requires direct.h).
-inline auto mkdir(const char* path, mode_t mode) ->
-decltype(_mkdir(path))
+inline auto access(const char* fileName, int accessMode) ->
+decltype(_access(fileName, accessMode))
{
- return _mkdir(path);
+ return _access(fileName, accessMode);
}
@@ -180,12 +189,6 @@ decltype(_mkdir(path))
// [1] http://www.delorie.com/gnu/docs/glibc/libc_288.html
-// Corresponds to `mode_t` defined in sys/types.h of the POSIX spec.
-// See note above for an explanation of why this is an int instead of
-// unsigned short (as is common on *nix).
-typedef int mode_t;
-
-
// User permission flags.
const mode_t S_IRUSR = mode_t(_S_IREAD); // Readable by user.
const mode_t S_IWUSR = mode_t(_S_IWRITE); // Writeable by user.