SAGA Adaptor CPI v.1.0
|
00001 // Copyright (c) 2005-2009 Hartmut Kaiser 00002 // 00003 // Distributed under the Boost Software License, Version 1.0. (See accompanying 00004 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 00005 00006 #ifndef SAGA_PACKAGES_COMM_RPC_PARAMETER_HPP 00007 #define SAGA_PACKAGES_COMM_RPC_PARAMETER_HPP 00008 00009 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 00010 #pragma once 00011 #endif 00012 00013 #include <saga/saga/packages/rpc/config.hpp> 00014 00015 // include dependent spec sections 00016 #include <saga/saga/buffer.hpp> 00017 00018 // suppress warnings about dependent classes not being exported from the dll 00019 #if defined(BOOST_MSVC) 00020 #pragma warning(push) 00021 #pragma warning(disable: 4251 4231 4275 4660) 00022 #endif 00023 00025 namespace saga 00026 { 00027 namespace rpc { 00028 00043 enum io_mode 00044 { 00045 Unknown = -1, 00046 In = 1, // input parameter 00047 Out = 2, // output parameter 00048 InOut = In | Out // input and output parameter 00049 }; 00050 00057 class SAGA_RPC_PACKAGE_EXPORT parameter 00058 : public saga::mutable_buffer 00059 { 00060 protected: 00062 00063 TR1::shared_ptr <saga::impl::parameter> get_impl_sp (void) const; 00064 saga::impl::parameter* get_impl (void) const; 00065 friend class saga::impl::parameter; 00067 00068 public: 00074 parameter(void* data = 0, saga::ssize_t size = -1, io_mode mode = In, 00075 buffer_deleter cb = default_buffer_deleter); 00076 00081 ~parameter(); 00082 00087 io_mode get_mode() const; 00088 00089 // FIXME: missing from spec: set_io_mode 00090 00091 }; 00092 }} 00093 00094 // re-enable warnings about dependent classes not being exported from the dll 00095 #if defined(BOOST_MSVC) 00096 #pragma warning(pop) 00097 #endif 00098 00099 #endif // !defined(SAGA_PACKAGES_COMM_RPC_PARAMETER_HPP) 00100