void Simple_Tester::handle_write_file (const ACE_Asynch_Write_File::Result &result) { ACE_DEBUG ((LM_DEBUG, "handle_write_File called\n")); // Reset pointers result.message_block ().rd_ptr (result.message_block ().rd_ptr () - result.bytes_transferred ()); result.message_block ().rd_ptr ()[result.bytes_transferred ()] = '\0'; ACE_DEBUG ((LM_DEBUG, "********************\n")); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_to_write", result.bytes_to_write ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "handle", result.handle ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_transfered", result.bytes_transferred ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "act", (u_long) result.act ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "success", result.success ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "completion_key", (u_long) result.completion_key ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "error", result.error ())); ACE_DEBUG ((LM_DEBUG, "********************\n")); // Watch out if you need to enable this... the ACE_Log_Record::MAXLOGMSGLEN // value controls to max length of a log record, and a large output // buffer may smash it. #if 0 ACE_DEBUG ((LM_DEBUG, "%s = %s\n", "message_block", result.message_block ().rd_ptr ())); #endif /* 0 */ ACE_Proactor::end_event_loop (); }
void Receiver::handle_write_file (const ACE_Asynch_Write_File::Result &result) { ACE_DEBUG ((LM_DEBUG, "handle_write_file called\n")); ACE_DEBUG ((LM_DEBUG, "********************\n")); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_to_write", result.bytes_to_write ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "handle", result.handle ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_transfered", result.bytes_transferred ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "act", (uintptr_t) result.act ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "success", result.success ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "completion_key", (uintptr_t) result.completion_key ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "error", result.error ())); ACE_DEBUG ((LM_DEBUG, "********************\n")); result.message_block ().release (); if (result.success ()) // Write successful: Increment file offset this->file_offset_ += ACE_Utils::truncate_cast<u_long> (result.bytes_transferred ()); // This code is not robust enough to deal with short file writes // (which hardly ever happen) ;-) ACE_ASSERT (result.bytes_to_write () == result.bytes_transferred ()); }
void Writer::handle_write_file (const ACE_Asynch_Write_File::Result &result) { ACE_Message_Block *mb = &result.message_block (); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Writer::handle_write_file at offset %d wrote %d\n"), this->reported_file_offset_, result.bytes_transferred ())); this->reported_file_offset_ += static_cast<u_long> (result.bytes_transferred ()); // Always truncate as required, // because partial will always be the last write to a file ACE_Message_Block *last_mb = mb; last_chunk (mb, last_mb); if (last_mb->space ()) ACE_OS::truncate (output_file, this->reported_file_offset_ - static_cast<u_long> (last_mb->space ())); free_chunks_chain (mb); --this->io_count_; // end of process? if (0 == this->receiver_count_ && 0 == this->io_count_) { ACE_TEST_ASSERT (0 == this->odd_chain_ && 0 == this->even_chain_); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Writer::handle_write_file") ACE_TEXT (" - ending proactor event loop\n"))); ACE_Proactor::instance ()->end_event_loop (); delete this; } }