From 34d38cb0fbeea45eba5505df3340ecce819966d0 Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Thu, 4 Aug 2016 17:11:23 -0400 Subject: [PATCH] split sendfile wrapper into separate files --- src/fs_sendfile.cpp | 25 +++---------------------- src/fs_sendfile_linux.icpp | 31 +++++++++++++++++++++++++++++++ src/fs_sendfile_unsupported.icpp | 28 ++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 22 deletions(-) create mode 100644 src/fs_sendfile_linux.icpp create mode 100644 src/fs_sendfile_unsupported.icpp diff --git a/src/fs_sendfile.cpp b/src/fs_sendfile.cpp index db8c14b5..1af25458 100644 --- a/src/fs_sendfile.cpp +++ b/src/fs_sendfile.cpp @@ -14,27 +14,8 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include - -#if defined __linux__ -#include -#endif - -#include "fs_sendfile.hpp" - -namespace fs -{ - ssize_t - sendfile(const int fdin, - const int fdout, - const size_t count) - { -#if defined __linux__ - off_t offset = 0; - - return ::sendfile(fdout,fdin,&offset,count); +#ifdef __linux__ +# include "fs_sendfile_linux.icpp" #else - return (errno=EINVAL,-1); +# include "fs_sendfile_unsupported.icpp" #endif - } -} diff --git a/src/fs_sendfile_linux.icpp b/src/fs_sendfile_linux.icpp new file mode 100644 index 00000000..344bc261 --- /dev/null +++ b/src/fs_sendfile_linux.icpp @@ -0,0 +1,31 @@ +/* + Copyright (c) 2016, Antonio SJ Musumeci + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#include +#include + +namespace fs +{ + ssize_t + sendfile(const int fdin, + const int fdout, + const size_t count) + { + off_t offset = 0; + + return ::sendfile(fdout,fdin,&offset,count); + } +} diff --git a/src/fs_sendfile_unsupported.icpp b/src/fs_sendfile_unsupported.icpp new file mode 100644 index 00000000..87af18fd --- /dev/null +++ b/src/fs_sendfile_unsupported.icpp @@ -0,0 +1,28 @@ +/* + Copyright (c) 2016, Antonio SJ Musumeci + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#include + +namespace fs +{ + ssize_t + sendfile(const int fdin, + const int fdout, + const size_t count) + { + return (errno=EINVAL,-1); + } +}