1 // 2 // Copyright (c) ZeroC, Inc. All rights reserved. 3 // 4 5 #ifndef ICE_INTERFACE_BY_VALUE_H 6 #define ICE_INTERFACE_BY_VALUE_H 7 8 #include <Ice/Value.h> 9 #include <Ice/OutputStream.h> 10 #include <Ice/InputStream.h> 11 12 #ifdef ICE_CPP11_MAPPING 13 14 namespace Ice 15 { 16 17 /** 18 * Represents an instance of a Slice interface that was marshaled by value. 19 * \headerfile Ice/Ice.h 20 */ 21 template<typename T> 22 class InterfaceByValue : public ValueHelper<InterfaceByValue<T>, Value> 23 { 24 public: 25 /** 26 * Obtains the Slice type ID of this exception. 27 * @return The fully-scoped type ID. 28 */ ice_id()29 virtual std::string ice_id() const 30 { 31 return T::ice_staticId(); 32 } 33 34 /** 35 * Obtains the Slice type ID of this exception. 36 * @return The fully-scoped type ID. 37 */ ice_staticId()38 static const std::string& ice_staticId() 39 { 40 return T::ice_staticId(); 41 } 42 43 /** 44 * Returns an empty tuple. 45 * @return The empty tuple. 46 */ ice_tuple()47 std::tuple<> ice_tuple() const 48 { 49 return std::tie(); 50 } 51 }; 52 53 } 54 55 #endif 56 57 #endif 58