21 #include "boost/date_time/posix_time/posix_time_duration.hpp"
22 #include "soss_client/object_policy.h"
44 : throw_on_error_(true) {}
50 : throw_on_error_(throw_on_error) {}
84 : return_code_(return_code), object_ptr_(object_ptr) {}
96 throw std::runtime_error(
"The object was not retrieved successfully. Check GetMetadataResult.return_code() for error info.");
108 int32_t return_code_;
109 boost::shared_ptr<ObjectMetadata> object_ptr_;
122 boost::posix_time::time_duration timeout;
123 if(pobj_metadata->timeout_granularity == SOSSLIB_TIMEOUT_GRAN_SECONDS)
124 timeout = boost::posix_time::seconds(pobj_metadata->timeout);
126 timeout = boost::posix_time::minutes(pobj_metadata->timeout);
128 std::vector<SossKey> parents(pobj_metadata->parent_list, pobj_metadata->parent_list + SOSSLIB_MAX_PARENTS);
133 .
set_timeout_type(static_cast<ObjectPolicy::TimeoutType>(pobj_metadata->absolute_timeout))
136 .
set_parents(std::vector<SossKey>(pobj_metadata->parent_list, pobj_metadata->parent_list + SOSSLIB_MAX_PARENTS));
139 size_ = pobj_metadata->size;
140 backstore_mode_ =
static_cast<BackingStoreMode>(pobj_metadata->backstore_mode);
141 immutable_ = (pobj_metadata->immutable == TRUE);
142 backstore_timeout_ = boost::posix_time::seconds(pobj_metadata->backstore_timeout);
143 coherency_timeout_ = boost::posix_time::seconds(pobj_metadata->coherency_timeout);
144 coherency_policy_ =
static_cast<CoherencyPolicy>(pobj_metadata->coherency_policy);
145 last_replication_succeeded_ =
static_cast<ReplicationStatus>(pobj_metadata->replication_status);
146 is_proxy_ = (pobj_metadata->is_proxy == TRUE);
147 allow_remote_ = (pobj_metadata->allow_remote == TRUE);
158 ASYNC_WRITE_AND_REFRESH
182 unsigned long size()
const {
return size_; }
222 boost::posix_time::time_duration
226 boost::posix_time::time_duration