if (op) {
if (s->trace) {
s->trace->SetAttribute(tracing::rgw::RETURN, op->get_ret());
- if (s->user) {
+ if (!rgw::sal::User::empty(s->user)) {
s->trace->SetAttribute(tracing::rgw::USER_ID, s->user->get_id().id);
}
- if (s->bucket) {
+ if (!rgw::sal::Bucket::empty(s->bucket)) {
s->trace->SetAttribute(tracing::rgw::BUCKET_NAME, s->bucket->get_name());
}
- if (s->object) {
+ if (!rgw::sal::Object::empty(s->object)) {
s->trace->SetAttribute(tracing::rgw::OBJECT_NAME, s->object->get_name());
}
}
/** Set the cached attributes fro this User */
virtual void set_attrs(Attrs& _attrs) = 0;
/** Check if a User is empty */
- virtual bool empty() = 0;
+ virtual bool empty() const = 0;
/** Check if a User pointer is empty */
- static bool empty(User* u) { return (!u || u->empty()); }
+ static bool empty(const User* u) { return (!u || u->empty()); }
/** Check if a User unique_pointer is empty */
- static bool empty(std::unique_ptr<User>& u) { return (!u || u->empty()); }
+ static bool empty(const std::unique_ptr<User>& u) { return (!u || u->empty()); }
/** Read the User attributes from the backing Store */
virtual int read_attrs(const DoutPrefixProvider* dpp, optional_yield y) = 0;
/** Set the attributes in attrs, leaving any other existing attrs set, and
bool must_exist, optional_yield y) = 0;
/** Check to see if the given object pointer is uninitialized */
- static bool empty(Object* o) { return (!o || o->empty()); }
+ static bool empty(const Object* o) { return (!o || o->empty()); }
/** Check to see if the given object unique pointer is uninitialized */
- static bool empty(std::unique_ptr<Object> o) { return (!o || o->empty()); }
+ static bool empty(const std::unique_ptr<Object>& o) { return (!o || o->empty()); }
/** Get a unique copy of this object */
virtual std::unique_ptr<Object> clone() = 0;
}
virtual Attrs& get_attrs() override { return next->get_attrs(); }
virtual void set_attrs(Attrs& _attrs) override { next->set_attrs(_attrs); }
- virtual bool empty() override { return next->empty(); }
+ virtual bool empty() const override { return next->empty(); }
virtual int read_attrs(const DoutPrefixProvider* dpp, optional_yield y) override;
virtual int merge_and_store_attrs(const DoutPrefixProvider* dpp, Attrs&
new_attrs, optional_yield y) override;
virtual RGWObjVersionTracker& get_version_tracker() override { return objv_tracker; }
virtual Attrs& get_attrs() override { return attrs; }
virtual void set_attrs(Attrs& _attrs) override { attrs = _attrs; }
- virtual bool empty() override { return info.user_id.id.empty(); }
+ virtual bool empty() const override { return info.user_id.id.empty(); }
virtual RGWUserInfo& get_info() override { return info; }
virtual void print(std::ostream& out) const override { out << info.user_id; }