diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:11 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:11 +0000 |
commit | 8008dd09ccf88d4edef237a184a698cac42f2952 (patch) | |
tree | da50d054f9c761c3f6a5923f6979e93306c56d68 /TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp | |
parent | 13d6e89af439164c0ade48e6f5c3e9b3f971e8c9 (diff) | |
download | ATCD-8008dd09ccf88d4edef237a184a698cac42f2952.tar.gz |
Repo restructuring
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp b/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp deleted file mode 100644 index f6f0864b46f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp +++ /dev/null @@ -1,203 +0,0 @@ -// $Id$ - -#include "orbsvcs/Notify/XML_Saver.h" - -#include "ACEXML/common/XML_Util.h" - -#include "ace/High_Res_Timer.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_unistd.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace TAO_Notify -{ - extern const char TOPOLOGY_ID_NAME[]; - - XML_Saver::XML_Saver(bool timestamp) - : output_ (0) - , close_out_ (false) - , backup_count_ (1) - , timestamp_ (timestamp) - { - } - - XML_Saver::~XML_Saver() - { - if (this->output_ != 0) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%P|%t) XML_Saver warning close not called or failed\n") - )); - } - } - - void - XML_Saver::backup_file_name (char * file_path, int nfile) - { - ACE_OS::snprintf(file_path, MAXPATHLEN, "%s.%3.3d", - this->base_name_.c_str (), - nfile); - } - - void - XML_Saver::close (ACE_ENV_SINGLE_ARG_DECL) - { - if (this->close_out_ && this->output_ != 0) - { - this->end_object(0, "notification_service" ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_OS::fclose(this->output_); - this->output_ = 0; - - // delete the oldest backup file (if it exists) - size_t nfile = this->backup_count_ - 1; - char old_path [MAXPATHLEN + 1]; - backup_file_name (old_path, nfile); - ACE_OS::unlink (old_path); - - while (nfile != 0) - { - char new_path [MAXPATHLEN + 1]; - nfile -= 1; - backup_file_name (new_path, nfile); - // this may fail, we don't care - ACE_OS::rename (new_path, old_path); - ACE_OS::strcpy (old_path, new_path); - } - // old_path now contains the name of the backup file - ACE_CString xml_name = this->base_name_; - xml_name += ".xml"; - - ACE_OS::rename (xml_name.c_str (), old_path); - - ACE_CString new_name = this->base_name_; - new_name += ".new"; - ACE_OS::rename (new_name.c_str (), xml_name.c_str ()); - } - this->output_ = 0; - } - - bool - XML_Saver::open(const ACE_CString & base_name, size_t backup_count) - { - this->base_name_ = base_name; - this->backup_count_ = backup_count; - if (base_name == "cout") - { - this->output_ = stdout; - this->close_out_ = false; - } - else if (base_name == "cerr") - { - this->output_ = stderr; - this->close_out_ = false; - } - else - { - ACE_CString file_name = base_name; - file_name += ".new"; - - this->output_ = ACE_OS::fopen (file_name.c_str(), ACE_TEXT("wb")); - if (this->output_) { - this->close_out_ = true; - } else { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%P|%t) XML_Saver unable to open %s\n"), - base_name.c_str())); - } - } - if (this->output_ != 0) - { - FILE *out = this->output_; - - ACE_OS::fprintf (out, "<?xml version=\"1.0\"?>\n"); - - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - bool changed = true; - NVPList attrs; - - ACE_Time_Value now = ACE_High_Res_Timer::gettimeofday(); - - ACE_UINT64 nowus = now.usec(); - static const ACE_UINT64 USECSPERSEC = 1000 * 1000; - ACE_UINT64 tmpus = now.sec(); - nowus += tmpus * USECSPERSEC; - - char nowusstr[128]; -#ifdef ACE_LACKS_LONGLONG_T - nowus.as_string(nowusstr); -#else - ACE_OS::sprintf(nowusstr, ACE_UINT64_FORMAT_SPECIFIER, nowus); -#endif /* ACE_LACKS_LONGLONG_T */ - - attrs.push_back(NVP("version", "1.0")); - if (this->timestamp_) - { - attrs.push_back(NVP("timestamp", nowusstr)); - } - this->begin_object(0, "notification_service", attrs, changed ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - ACE_TEXT ("(%P|%t) XML_Saver Unknown exception\n")); - delete this->output_; - this->output_ = 0; - } - ACE_ENDTRY; - } - return this->output_ != 0; - } - - bool XML_Saver::begin_object(CORBA::Long id, - const ACE_CString& type, - const NVPList& attrs, - bool /* changed */ - ACE_ENV_ARG_DECL_NOT_USED) - { - ACE_ASSERT(this->output_ != 0); - - FILE *out = this->output_; - - ACE_OS::fprintf (out, "%s%s%s", indent_.c_str(), "<", type.c_str()); - if (id != 0) - { - // not all ostreams know what to do with a CORBA::Long - long lid = id; - ACE_OS::fprintf (out, " %s%s%ld%s", TOPOLOGY_ID_NAME, "=\"", lid, "\""); - } - - const size_t BUF_SIZE = 512; - ACE_CString tmp(BUF_SIZE); - for (size_t idx = 0; idx < attrs.size(); idx++) - { - ACEXML_escape_string(attrs[idx].value, tmp); - ACE_OS::fprintf (out, "%s%s%s%s%s", " ", - attrs[idx].name.c_str (), "=\"", tmp.c_str(), "\""); - } - ACE_OS::fprintf (out, ">\n"); - this->indent_ += " "; - return true; - } - - void XML_Saver::end_object (CORBA::Long /* id */, - const ACE_CString& type - ACE_ENV_ARG_DECL_NOT_USED) - { - ACE_ASSERT(this->output_ != 0); - FILE *out = this->output_; - if (this->indent_.length() >= 2) - { - this->indent_ = this->indent_.substr(2); - } - ACE_OS::fprintf (out, "%s%s%s%s", indent_.c_str(), "</", - type.c_str(), ">\n"); - } -} /* namespace TAO_Notify */ - -TAO_END_VERSIONED_NAMESPACE_DECL |