summaryrefslogtreecommitdiff
path: root/writerfilter/qa/cppunittests/odiapi/ExternalViewLogger.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'writerfilter/qa/cppunittests/odiapi/ExternalViewLogger.cxx')
-rw-r--r--writerfilter/qa/cppunittests/odiapi/ExternalViewLogger.cxx194
1 files changed, 0 insertions, 194 deletions
diff --git a/writerfilter/qa/cppunittests/odiapi/ExternalViewLogger.cxx b/writerfilter/qa/cppunittests/odiapi/ExternalViewLogger.cxx
deleted file mode 100644
index a894030bbd6d..000000000000
--- a/writerfilter/qa/cppunittests/odiapi/ExternalViewLogger.cxx
+++ /dev/null
@@ -1,194 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "ExternalViewLogger.hxx"
-#include <iostream>
-#include <boost/assert.hpp>
-#include <stdio.h>
-
-#ifdef WNT
- #define SNPRINTF(buffer, size, format, args) _snprintf(buffer, size, format, args)
-#else
- #define SNPRINTF(buffer, size, format, args) snprintf(buffer, size, format, args)
-#endif
-
-using namespace std;
-
-namespace util
-{
-
- NodeDescription::NodeDescription(const string& parent, const string& refersTo, const string& value, bool inUse) :
- mParentNodeId(parent),
- mRefersToNodeId(refersTo),
- mNodeValue(value),
- mInUse(inUse)
- {}
-
- ExternalViewLoggerImpl::ExternalViewLoggerImpl(const string& fileName) :
- mFileName(fileName),
- mFile(fileName.c_str())
- {
- if (!mFile)
- throw "Cannot open file";
- }
-
- string ExternalViewLoggerImpl::getNewStyleName()
- {
- static int i = 0;
- char buff[20];
- SNPRINTF(buff, sizeof(buff), "Style_%d", i++);
- return string(buff);
- }
-
- void ExternalViewLoggerImpl::beginTree()
- {
- mParentNodeStack.push("");
- }
-
- void ExternalViewLoggerImpl::dumpNodeContainer(const std::string& fileName)
- {
- std::ofstream file(fileName.c_str());
- NodeContainer_t::iterator iter = mNodeContainer.begin();
- NodeContainer_t::iterator iter_end = mNodeContainer.end();
- for (; iter != iter_end; ++iter)
- {
- file << iter->first << string(" ") << iter->second->mParentNodeId << string(" ") << iter->second->mRefersToNodeId << string(" ") << iter->second->mNodeValue << endl;
- }
- }
-
- void ExternalViewLoggerImpl::endTree()
- {
- mFile << "digraph {" << endl;
- mFile << "Root [shape=box, color=grey];" << endl;
-
- while (!mParentNodeStack.empty())
- mParentNodeStack.pop();
-
- mParentNodeStack.push("Root");
-
- NodeContainer_t::iterator iter = mNodeContainer.begin();
- NodeContainer_t::iterator iter_end = mNodeContainer.end();
- for (; iter != iter_end; ++iter)
- {
- if (isUnreferencedLeaf(iter->first))
- {
- string newStyleName = getNewStyleName();
- mFile << newStyleName << " [shape=box];" << endl;
- mFile << mParentNodeStack.top() << " -> " << newStyleName << endl;
- mParentNodeStack.push(newStyleName);
- dumpTree(iter->first);
- mParentNodeStack.pop();
- }
- }
-
- mFile << "}" << endl;
- }
-
- void ExternalViewLoggerImpl::beginNode(const std::string& nodeId, const std::string& value, const std::string& refersToNodeId, bool inUse)
- {
- mNodeContainer.insert(
- NodeContainer_t::value_type(nodeId,
- NodeDescription::Pointer_t(new NodeDescription(mParentNodeStack.top(), refersToNodeId, value, inUse))));
- mParentNodeStack.push(nodeId);
- }
-
- void ExternalViewLoggerImpl::endNode(const std::string& nodeId)
- {
- mParentNodeStack.pop();
- }
-
- bool ExternalViewLoggerImpl::isLeaf(const std::string& nodeId)
- {
- bool isLeaf = true;
-
- NodeContainer_t::const_iterator iter = mNodeContainer.begin();
- NodeContainer_t::const_iterator iter_end = mNodeContainer.end();
- for (; iter != iter_end; ++iter)
- {
- if (iter->second->mParentNodeId == nodeId)
- {
- isLeaf = false;
- break;
- }
- }
- return isLeaf;
- }
-
- bool ExternalViewLoggerImpl::isUnreferencedLeaf(const string& nodeId)
- {
- return isLeaf(nodeId) && !isReferenced(nodeId);
- }
-
- bool ExternalViewLoggerImpl::isReferenced(const string& nodeId)
- {
- bool isReferenced = false;
-
- NodeContainer_t::const_iterator iter = mNodeContainer.begin();
- NodeContainer_t::const_iterator iter_end = mNodeContainer.end();
- for (; iter != iter_end; ++iter)
- {
- if (iter->second->mRefersToNodeId == nodeId)
- {
- isReferenced = true;
- break;
- }
- }
- return isReferenced;
- }
-
- bool ExternalViewLoggerImpl::isReferingToOtherNode(const string& nodeId)
- {
- NodeContainer_t::const_iterator iter = mNodeContainer.find(nodeId);
- BOOST_ASSERT(iter != mNodeContainer.end());
- return !iter->second->mRefersToNodeId.empty();
- }
-
- bool ExternalViewLoggerImpl::hasParent(const string& nodeId)
- {
- NodeContainer_t::const_iterator iter = mNodeContainer.find(nodeId);
- BOOST_ASSERT(iter != mNodeContainer.end());
- return iter->second->mParentNodeId != "Root" && iter->second->mParentNodeId != "";
- }
-
- string ExternalViewLoggerImpl::getValue(const string& nodeId)
- {
- return mNodeContainer.find(nodeId)->second->mNodeValue;
- }
-
- void ExternalViewLoggerImpl::dumpTree(const string& nodeId)
- {
- if (nodeId != "Root")
- {
- mFile << nodeId << " [label=\"(" << getValue(nodeId) << ")\",shape=box];" << endl;
- mFile << mParentNodeStack.top() << " -> " << nodeId << ";" << endl;
- if (isReferingToOtherNode(nodeId))
- {
- mParentNodeStack.push(nodeId);
- dumpTree(mNodeContainer.find(nodeId)->second->mRefersToNodeId);
- mParentNodeStack.pop();
- }
- }
-
- if (hasParent(nodeId))
- dumpTree(mNodeContainer.find(nodeId)->second->mParentNodeId);
- }
-
-} // namespace util
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */