SAGA C++ API 1.6
parameter.hpp
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines