diff --git a/SConstruct b/SConstruct index b1309b67d9..47591fa536 100644 --- a/SConstruct +++ b/SConstruct @@ -581,7 +581,6 @@ for toolchain in all_toolchains: 'resource.cpp', 'rpcx.cpp', 'server.cpp', - 'sitefiles.cpp', 'validators.cpp', 'websocket.cpp', ) diff --git a/src/ripple/app/main/Application.cpp b/src/ripple/app/main/Application.cpp index 49c53ee614..ccda2ca971 100644 --- a/src/ripple/app/main/Application.cpp +++ b/src/ripple/app/main/Application.cpp @@ -36,7 +36,6 @@ #include #include #include -#include #include #include #include @@ -172,7 +171,6 @@ public: // These are Stoppable-related std::unique_ptr m_jobQueue; - std::unique_ptr m_siteFiles; std::unique_ptr m_rpcManager; // VFALCO TODO Make OrderBookDB abstract OrderBookDB m_orderBookDB; @@ -282,9 +280,6 @@ public: // Anything which calls addJob must be a descendant of the JobQueue // - , m_siteFiles (SiteFiles::Manager::New ( - *this, m_logs.journal("SiteFiles"))) - , m_rpcManager (RPC::make_Manager (m_logs.journal("RPCManager"))) , m_orderBookDB (*m_jobQueue) @@ -387,11 +382,6 @@ public: return *m_rpcManager; } - SiteFiles::Manager& getSiteFiles() - { - return *m_siteFiles; - } - LocalCredentials& getLocalCredentials () { return m_localCredentials ; diff --git a/src/ripple/app/main/Application.h b/src/ripple/app/main/Application.h index f6fc73275d..d70333d3a3 100644 --- a/src/ripple/app/main/Application.h +++ b/src/ripple/app/main/Application.h @@ -30,7 +30,6 @@ namespace boost { namespace asio { class io_service; } } namespace ripple { -namespace SiteFiles { class Manager; } namespace Validators { class Manager; } namespace Resource { class Manager; } namespace NodeStore { class Database; } @@ -97,7 +96,6 @@ public: virtual FullBelowCache& getFullBelowCache () = 0; virtual JobQueue& getJobQueue () = 0; virtual RPC::Manager& getRPCManager () = 0; - virtual SiteFiles::Manager& getSiteFiles () = 0; virtual NodeCache& getTempNodeCache () = 0; virtual TreeNodeCache& getTreeNodeCache () = 0; virtual SLECache& getSLECache () = 0; diff --git a/src/ripple/peerfinder/Manager.h b/src/ripple/peerfinder/Manager.h index e8cb2bf179..15a4780b69 100644 --- a/src/ripple/peerfinder/Manager.h +++ b/src/ripple/peerfinder/Manager.h @@ -21,7 +21,6 @@ #define RIPPLE_PEERFINDER_MANAGER_H_INCLUDED #include -#include #include #include #include diff --git a/src/ripple/sitefiles/README.md b/src/ripple/sitefiles/README.md deleted file mode 100644 index 0f9cbe58f3..0000000000 --- a/src/ripple/sitefiles/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# SiteFiles - -A central module that manages the download of local and remote ripple.txt files -and allows other code modules to access the sections. diff --git a/src/ripple/sitefiles/Sitefiles.h b/src/ripple/sitefiles/Sitefiles.h deleted file mode 100644 index f337bca421..0000000000 --- a/src/ripple/sitefiles/Sitefiles.h +++ /dev/null @@ -1,137 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#ifndef RIPPLE_SITEFILES_SITEFILES_H_INCLUDED -#define RIPPLE_SITEFILES_SITEFILES_H_INCLUDED - -#include -#include -#include -#include -#include - -namespace ripple { -namespace SiteFiles { - -/** A Site File section. - Each section has a name, an associative map of key/value pairs, - and a vector of zero or more free-form data strings. -*/ -// VFALCO NOTE This could use ripple::Section instead, which -// seems to offer the same functionality -// -class Section -{ -public: - typedef std::map MapType; - typedef std::vector DataType; - - Section(int = 0); // dummy argument for emplace() - - // Observers - std::string const& get (std::string const& key) const; - std::string const& operator[] (std::string const& key) const; - DataType const& data() const; - - // Modifiers - void set (std::string const& key, std::string const& value); - std::string& operator[] (std::string const& key); - void push_back (std::string const& data); - -private: - MapType m_map; - DataType m_data; -}; - -//------------------------------------------------------------------------------ - -class SiteFile -{ -public: - SiteFile (int = 0); // dummy argument for emplace - - typedef std::map SectionsType; - - /** Retrieve a section by name. */ - /** @{ */ - Section const& get (std::string const& name) const; - Section const& operator[] (std::string const& key) const; - /** @} */ - - /** Retrieve or create a section with the specified name. */ - Section& insert (std::string const& name); - -private: - SectionsType m_sections; -}; - -//------------------------------------------------------------------------------ - -/** SiteFiles listeners receive notifications on new files and sections. - Calls are made on an implementation-defined, unspecified thread. - Subclasses implementations should not perform blocking i/o or take - a long time. -*/ -class Listener -{ -public: - /** Called every time a new site file is retrieved. - Notifications for Site files retrieved before a listener was added will - be sent at the time the listener is added. - */ - virtual void onSiteFileFetch ( - std::string const& name, SiteFile const& siteFile) = 0; -}; - -//------------------------------------------------------------------------------ - -/** Fetches and maintains a collection of ripple.txt files from domains. */ -class Manager - : public beast::Stoppable - , public beast::PropertyStream::Source -{ -protected: - explicit Manager (Stoppable& parent); - -public: - /** Create a new Manager. */ - static Manager* New (beast::Stoppable& parent, beast::Journal journal); - - /** Destroy the object. - Any pending fetch operations are aborted. - */ - virtual ~Manager() = default; - - /** Adds a listener. */ - virtual void addListener (Listener& listener) = 0; - - /** Remove a listener. */ - virtual void removeListener (Listener& listener) = 0; - - /** Add a URL leading to a ripple.txt file. - This call does not block. The URL will be fetched asynchronously. - Parsing errors are reported to the journal. - */ - virtual void addURL (std::string const& urlstr) = 0; -}; - -} -} - -#endif diff --git a/src/ripple/sitefiles/impl/Logic.h b/src/ripple/sitefiles/impl/Logic.h deleted file mode 100644 index 756e9a2852..0000000000 --- a/src/ripple/sitefiles/impl/Logic.h +++ /dev/null @@ -1,308 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#ifndef RIPPLE_SITEFILES_LOGIC_H_INCLUDED -#define RIPPLE_SITEFILES_LOGIC_H_INCLUDED - -#include -#include // DEPRECATED -#include -#include -#include -#include - -namespace ripple { -namespace SiteFiles { - -/* -Config file format: - - Syntactically a series of lines, where line has this format: - [ ] ( OR ) - - Semantically a series of of zero or more sections, where each section - has a name and optional data. Specifically, the format: - ( OR
) - - Data appearing before the first header goes into the section whose - name is the empty string "". - - All lines are valid, errors are not possible. Each line matches one of - the Comment, Header, or Data format: - - Comment: - [ ] [ '#' ] - - Comment lines are ignored; The file is treated as if - the comment lines do not exist. - - Header: - [ ] '[' ']' [ ] - - Data: - Anything not matching a comment or header. - - Lines in a data block are added to the section with the last name parsed, - or the empty string if no header line has been seen yet. -*/ -class Logic -{ -public: - typedef std::set Listeners; - typedef std::map SiteFiles; - - struct State - { - State() - { - } - - Listeners listeners; - SiteFiles files; - }; - - typedef beast::SharedData SharedState; - - SharedState m_state; - beast::Journal m_journal; - - explicit Logic (beast::Journal journal) - : m_journal (journal) - { - } - - ~Logic () - { - } - - //-------------------------------------------------------------------------- - // - // Logic - // - //-------------------------------------------------------------------------- - - void addListener (Listener& listener) - { - SharedState::Access state (m_state); - - // Notify the listener for each site file already added - for (SiteFiles::const_iterator iter (state->files.begin()); - iter != state->files.end(); ++iter) - { - listener.onSiteFileFetch (to_string (iter->first), iter->second); - } - - state->listeners.insert (&listener); - } - - void removeListener (Listener& listener) - { - SharedState::Access state (m_state); - state->listeners.erase (&listener); - } - - void addURL (std::string const& urlstr) - { - // VFALCO This is commented out because the HTTPClient - // implementation is now obsolete. A new HTTP client - // that uses the latest best practices (asio coroutines, - // beast::http::message and beast::http::parser) should - // be used. - // - // NOTE SiteFiles is currently an unused module. - // -#if 0 - auto url = beast::parse_URL (urlstr); - - if (!url.first) - { - m_journal.error << - "Error parsing '" << urlstr << "'"; - return; - } - - auto const result (m_client->get (url.second)); - - boost::system::error_code const error (result.first); - - if (error) - { - m_journal.error << - "HTTP GET '" << url.second << - "' failed: " << error.message(); - return; - } - - beast::HTTPResponse const& response (*result.second); - - processResponse (url.second, response); -#endif - } - - //-------------------------------------------------------------------------- - // - // Implementation - // - //-------------------------------------------------------------------------- - - void processResponse (beast::URL const& url, beast::HTTPResponse const& response) - { - SharedState::Access state (m_state); - - std::pair result ( - state->files.emplace (url, 0)); - - if (! result.second) - { - m_journal.error << - "Duplicate URL '" << url << "' ignored"; - return; - } - - SiteFile& siteFile (result.first->second); - parse (siteFile, response); - - for (Listeners::iterator iter (state->listeners.begin()); - iter != state->listeners.end(); ++iter) - { - Listener* const listener (*iter); - listener->onSiteFileFetch (to_string (url), siteFile); - } - } - -#if 0 - static boost::regex const& reHeader () - { - static boost::regex re ( - "(?:\\v*)" // Line break (optional) - "(?:\\h*)" // Horizontal whitespace (optional) - "(?:\\[)" // Open bracket - "([^\\]]*)" // [1] Everything between the brackets - "(?:\\])" // Close bracket - "(?:\\V*)" // Rest of the line - , boost::regex::perl | - boost::regex_constants::match_not_null - ); - - return re; - } - - static boost::regex const& reComment () - { - static boost::regex re ( - "(?:\\v)*" // Line break (optional) - "(?:\\h*)" // Horizontal whitespace (optional) - "(?:#\\V*)*" // Comment - "(?:\\v*)" // Line break (optional) - , boost::regex::perl - | boost::regex_constants::match_not_null - ); - - return re; - } - - static boost::regex const& reData () - { - static boost::regex re ( - "(?:\\v|\\h)*" // Whitespace - "(\\V*)" // [1] Rest of the line - , boost::regex::perl - | boost::regex_constants::match_not_null - ); - - return re; - } -#else - - // regex debugger: - // - // https://www.debuggex.com/r/jwZFkNrqsouaTPHf - // - // (Thanks to J Lynn) - // - static boost::regex const& reHeader () - { - static boost::regex re ( - "(?:\\h*(?:#\\V*)?\\v)*" // Zero or more comments - "(?:\\v*)" // Line break (optional) - "(?:\\h*)" // Horizontal whitespace (optional) - "(?:\\[)" // Open bracket - "([^\\]]*)" // [1] Everything between the brackets - "(?:\\])" // Close bracket - "(?:\\V*)" // Rest of the line - "(?:\\h*(?:#\\V*)?\\v)*" // Zero or more comments - , boost::regex::perl - ); - - return re; - } - - static boost::regex const& reData () - { - static boost::regex re ( - "(?:\\h*(?:#\\V*)?\\v)*" // Zero or more comments - "(\\V*)" // [1] Rest of the line - "(?:\\h*(?:#\\V*)?\\v)*" // Zero or more comments - , boost::regex::perl - ); - - return re; - } -#endif - template - void parse ( - SiteFile& siteFile, - BidirectionalIterator start, - BidirectionalIterator end) - { - Section* section (&siteFile.insert ("")); - - boost::match_results m; - for (;start != end;) - { - if (boost::regex_search (start, end, m, reHeader(), - boost::regex_constants::match_continuous)) - { - std::string const& s (m[1]); - section = &siteFile.insert (s); - } - else - { - boost::regex_search (start, end, m, reData(), - boost::regex_constants::match_continuous); - - std::string const& s (m[1]); - section->push_back (s); - } - - start = m[0].second; - } - } - - void parse (SiteFile& siteFile, beast::HTTPResponse const& response) - { - std::string const s (response.body().to_string()); - parse (siteFile, s.begin(), s.end()); - } -}; - -} -} - -#endif diff --git a/src/ripple/sitefiles/impl/Manager.cpp b/src/ripple/sitefiles/impl/Manager.cpp deleted file mode 100644 index 5f8c692539..0000000000 --- a/src/ripple/sitefiles/impl/Manager.cpp +++ /dev/null @@ -1,146 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#include -#include -#include -#include - -namespace ripple { -namespace SiteFiles { - -typedef beast::ScopedWrapperContext < - beast::RecursiveMutex, beast::RecursiveMutex::ScopedLockType> SerializedContext; - -class ManagerImp - : public Manager - , public beast::Thread - , public beast::DeadlineTimer::Listener - , public beast::LeakChecked -{ -public: - Logic m_logic; - beast::Journal m_journal; - beast::ServiceQueue m_queue; - - //-------------------------------------------------------------------------- - - ManagerImp (Stoppable& stoppable, beast::Journal journal) - : Manager (stoppable) - , Thread ("SiteFiles") - , m_logic (journal) - , m_journal (journal) - { - // Turned off for now, this is for testing - //addURL ("https://ripple.com/ripple.txt"); - } - - ~ManagerImp () - { - stopThread (); - } - - //-------------------------------------------------------------------------- - // - // Manager - // - //-------------------------------------------------------------------------- - - void addListener (SiteFiles::Listener& listener) - { - m_queue.post (std::bind ( - &Logic::addListener, &m_logic, std::ref (listener))); - } - - void removeListener (SiteFiles::Listener& listener) - { - m_queue.post (std::bind ( - &Logic::removeListener, &m_logic, std::ref (listener))); - } - - void addURL (std::string const& urlstr) - { - m_queue.post (std::bind (&Logic::addURL, &m_logic, urlstr)); - } - - //-------------------------------------------------------------------------- - // - // Stoppable - // - //-------------------------------------------------------------------------- - - void onPrepare () - { - } - - void onStart () - { - startThread(); - } - - void onStop () - { - m_journal.debug << "Stopping"; - m_queue.stop (); - } - - //-------------------------------------------------------------------------- - // - // PropertyStream - // - //-------------------------------------------------------------------------- - - void onWrite (beast::PropertyStream::Map& map) - { - //SerializedContext::Scope scope (m_context); - - // ... - } - - //-------------------------------------------------------------------------- - - void onDeadlineTimer (beast::DeadlineTimer& timer) - { - } - - void run () - { - m_journal.debug << "Started"; - m_queue.run(); - m_queue.reset(); - m_queue.poll(); - stopped(); - } -}; - -//------------------------------------------------------------------------------ - -Manager::Manager (Stoppable& parent) - : Stoppable ("SiteFiles", parent) - , beast::PropertyStream::Source ("sitefiles") -{ -} - -Manager* Manager::New (Stoppable& parent, beast::Journal journal) -{ - return new ManagerImp (parent, journal); -} - -} -} diff --git a/src/ripple/sitefiles/impl/Section.cpp b/src/ripple/sitefiles/impl/Section.cpp deleted file mode 100644 index b192ba7b49..0000000000 --- a/src/ripple/sitefiles/impl/Section.cpp +++ /dev/null @@ -1,64 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#include - -namespace ripple { -namespace SiteFiles { - -Section::Section(int) -{ -} - -std::string const& Section::get (std::string const& key) const -{ - MapType::const_iterator iter (m_map.find (key)); - if (iter != m_map.end()) - return iter->second; - static std::string const none; - return none; -} - -std::string const& Section::operator[] (std::string const& key) const -{ - return get (key); -} - -std::vector const& Section::data() const -{ - return m_data; -} - -void Section::set (std::string const& key, std::string const& value) -{ - m_map [key] = value; -} - -std::string& Section::operator[] (std::string const& key) -{ - return m_map [key]; -} - -void Section::push_back (std::string const& data) -{ - m_data.push_back (data); -} - -} -} diff --git a/src/ripple/sitefiles/impl/Site.h b/src/ripple/sitefiles/impl/Site.h deleted file mode 100644 index fe8e5e8264..0000000000 --- a/src/ripple/sitefiles/impl/Site.h +++ /dev/null @@ -1,36 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#ifndef RIPPLE_SITEFILES_SITE_H_INCLUDED -#define RIPPLE_SITEFILES_SITE_H_INCLUDED - -namespace ripple { -namespace SiteFiles { - -struct Site -{ - Site (int) // dummy argument for emplace() - { - } -}; - -} -} - -#endif diff --git a/src/ripple/sitefiles/impl/SiteFile.cpp b/src/ripple/sitefiles/impl/SiteFile.cpp deleted file mode 100644 index 9a670df2c1..0000000000 --- a/src/ripple/sitefiles/impl/SiteFile.cpp +++ /dev/null @@ -1,51 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#include - -namespace ripple { -namespace SiteFiles { - -SiteFile::SiteFile (int) -{ -} - -Section const& SiteFile::get (std::string const& name) const -{ - SectionsType::const_iterator iter (m_sections.find (name)); - if (iter != m_sections.end()) - return iter->second; - static Section const none; - return none; -} - -Section const& SiteFile::operator[] (std::string const& key) const -{ - return get (key); -} - -Section& SiteFile::insert (std::string const& name) -{ - std::pair result ( - m_sections.emplace (name, 0)); - return result.first->second; -} - -} -} diff --git a/src/ripple/unity/sitefiles.cpp b/src/ripple/unity/sitefiles.cpp deleted file mode 100644 index b7c1c533ea..0000000000 --- a/src/ripple/unity/sitefiles.cpp +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------------------------------------------------------ -/* - This file is part of rippled: https://github.com/ripple/rippled - Copyright (c) 2012, 2013 Ripple Labs Inc. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ -//============================================================================== - -#include -#include -#include -#include