]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
c++11: stream output operators for stream types
authorCasey Bodley <cbodley@redhat.com>
Thu, 30 Jul 2015 20:20:32 +0000 (16:20 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 3 Aug 2015 15:16:13 +0000 (11:16 -0400)
stream output operators for the stream types are not part of the standard,
so this statement no longer works:

std::stringstream stream;
std::cout << stream;

instead, use the streambuf's stream operator:

std::cout << stream.rdbuf();

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/client/SyntheticClient.cc
src/common/admin_socket.cc
src/common/cmdparse.cc
src/mon/OSDMonitor.cc
src/msg/simple/Pipe.cc
src/msg/simple/Pipe.h
src/osd/PG.cc

index 248d49ba5e904c44dd2a6f30fe6440fdd2299933..fa92f620f598c3a29c15f2245330e2bd8df80a3f 100644 (file)
@@ -601,7 +601,7 @@ int SyntheticClient::run()
         int size = iargs.front();  iargs.pop_front();
         int inflight = iargs.front();  iargs.pop_front();
         if (run_me()) {
-          dout(2) << "createobjects " << cout << " of " << size << " bytes"
+          dout(2) << "createobjects " << count << " of " << size << " bytes"
                  << ", " << inflight << " in flight" << dendl;
           create_objects(count, size, inflight);
         }
@@ -617,7 +617,7 @@ int SyntheticClient::run()
         int rskew = iargs.front();  iargs.pop_front();
         int wskew = iargs.front();  iargs.pop_front();
         if (run_me()) {
-          dout(2) << "objectrw " << cout << " " << size << " " << wrpc 
+          dout(2) << "objectrw " << count << " " << size << " " << wrpc 
                  << " " << overlap << " " << rskew << " " << wskew << dendl;
           object_rw(count, size, wrpc, overlap, rskew, wskew);
         }
index 95a48b3ec129bc96f981b813c6c4b9c779333408..1df510545137361dd183dfc5284e04361fd95c10 100644 (file)
@@ -352,7 +352,7 @@ bool AdminSocket::do_accept()
   stringstream errss;
   cmdvec.push_back(cmd);
   if (!cmdmap_from_json(cmdvec, &cmdmap, errss)) {
-    ldout(m_cct, 0) << "AdminSocket: " << errss << dendl;
+    ldout(m_cct, 0) << "AdminSocket: " << errss.rdbuf() << dendl;
     return false;
   }
   cmd_getval(m_cct, cmdmap, "format", format);
index 3ca3bbd0cb4693a4895e73b36b7ae1e654d1c988..6c1aae83db5ac1acb1135e804ee2e46cd5aa3af9 100644 (file)
@@ -224,7 +224,7 @@ handle_bad_get(CephContext *cct, string k, const char *tname)
   BackTrace bt(1);
   ostringstream oss;
   bt.print(oss);
-  lderr(cct) << oss << dendl;
+  lderr(cct) << oss.rdbuf() << dendl;
   if (status == 0)
     free((char *)typestr);
 }
index 1bff447ddb2905ae9fe50f31fd4f2ca55bea3974..1871818be6f01c3f14cc8821c6862048a4e9df61 100644 (file)
@@ -4629,7 +4629,7 @@ int OSDMonitor::prepare_command_pool_set(map<string,cmd_vartype> &cmdmap,
        if (err == 0) {
         k = erasure_code->get_data_chunk_count();
        } else {
-        ss << __func__ << " get_erasure_code failed: " << tmp;
+        ss << __func__ << " get_erasure_code failed: " << tmp.rdbuf();
         return err;;
        }
 
index 245eae0165da10da072e42f1defbc6cf0b4e5036..a9b3b54e870e174bfba0618868c6c8c9a9088737 100644 (file)
 #define dout_subsys ceph_subsys_ms
 
 #undef dout_prefix
-#define dout_prefix _pipe_prefix(_dout)
-ostream& Pipe::_pipe_prefix(std::ostream *_dout) {
-  return *_dout << "-- " << msgr->get_myinst().addr << " >> " << peer_addr << " pipe(" << this
-               << " sd=" << sd << " :" << port
-               << " s=" << state
-               << " pgs=" << peer_global_seq
-               << " cs=" << connect_seq
-               << " l=" << policy.lossy
-               << " c=" << connection_state
-               << ").";
+#define dout_prefix *_dout << *this
+ostream& Pipe::_pipe_prefix(std::ostream &out) const {
+  return out << "-- " << msgr->get_myinst().addr << " >> " << peer_addr << " pipe(" << this
+            << " sd=" << sd << " :" << port
+             << " s=" << state
+             << " pgs=" << peer_global_seq
+             << " cs=" << connect_seq
+             << " l=" << policy.lossy
+             << " c=" << connection_state
+             << ").";
+}
+
+ostream& operator<<(ostream &out, const Pipe &pipe) {
+  return pipe._pipe_prefix(out);
 }
 
 /*
@@ -181,7 +185,7 @@ void Pipe::join_reader()
 
 void Pipe::DelayedDelivery::discard()
 {
-  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::discard" << dendl;
+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << *pipe << "DelayedDelivery::discard" << dendl;
   Mutex::Locker l(delay_lock);
   while (!delay_queue.empty()) {
     Message *m = delay_queue.front().second;
@@ -193,7 +197,7 @@ void Pipe::DelayedDelivery::discard()
 
 void Pipe::DelayedDelivery::flush()
 {
-  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::flush" << dendl;
+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << *pipe << "DelayedDelivery::flush" << dendl;
   Mutex::Locker l(delay_lock);
   flush_count = delay_queue.size();
   delay_cond.Signal();
@@ -202,11 +206,11 @@ void Pipe::DelayedDelivery::flush()
 void *Pipe::DelayedDelivery::entry()
 {
   Mutex::Locker locker(delay_lock);
-  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry start" << dendl;
+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << *pipe << "DelayedDelivery::entry start" << dendl;
 
   while (!stop_delayed_delivery) {
     if (delay_queue.empty()) {
-      lgeneric_subdout(pipe->msgr->cct, ms, 30) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry sleeping on delay_cond because delay queue is empty" << dendl;
+      lgeneric_subdout(pipe->msgr->cct, ms, 30) << *pipe << "DelayedDelivery::entry sleeping on delay_cond because delay queue is empty" << dendl;
       delay_cond.Wait(delay_lock);
       continue;
     }
@@ -216,11 +220,11 @@ void *Pipe::DelayedDelivery::entry()
     if (!flush_count &&
         (release > ceph_clock_now(pipe->msgr->cct) &&
          (delay_msg_type.empty() || m->get_type_name() == delay_msg_type))) {
-      lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry sleeping on delay_cond until " << release << dendl;
+      lgeneric_subdout(pipe->msgr->cct, ms, 10) << *pipe << "DelayedDelivery::entry sleeping on delay_cond until " << release << dendl;
       delay_cond.WaitUntil(delay_lock, release);
       continue;
     }
-    lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry dequeuing message " << m << " for delivery, past " << release << dendl;
+    lgeneric_subdout(pipe->msgr->cct, ms, 10) << *pipe << "DelayedDelivery::entry dequeuing message " << m << " for delivery, past " << release << dendl;
     delay_queue.pop_front();
     if (flush_count > 0) {
       --flush_count;
@@ -245,7 +249,7 @@ void *Pipe::DelayedDelivery::entry()
     }
     active_flush = false;
   }
-  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry stop" << dendl;
+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << *pipe << "DelayedDelivery::entry stop" << dendl;
   return NULL;
 }
 
index ddfa99f78af3ecba2f0e99a4d7d54519f5279835..0c1671a396d39927bb69e96ea7b10a25dd2f3726 100644 (file)
@@ -134,7 +134,7 @@ class DispatchQueue;
 
     SimpleMessenger *msgr;
     uint64_t conn_id;
-    ostream& _pipe_prefix(std::ostream *_dout);
+    ostream& _pipe_prefix(std::ostream &out) const;
 
     Pipe* get() {
       return static_cast<Pipe*>(RefCountedObject::get());
index 9afcddac4e1de44e07049a8472ea22f3bdbaf9d5..cf79a83dd4aa425677ea17545d9fe4771d2c053e 100644 (file)
@@ -3003,8 +3003,8 @@ void PG::read_state(ObjectStore *store, bufferlist &bl)
                  info_struct_v < 8 ? coll_t::meta() : coll,
                  ghobject_t(info_struct_v < 8 ? OSD::make_pg_log_oid(pg_id) : pgmeta_oid),
                  info, oss);
-  if (oss.str().length())
-    osd->clog->error() << oss;
+  if (oss.tellp())
+    osd->clog->error() << oss.rdbuf();
 
   // log any weirdness
   log_weirdness();