Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(781)

Unified Diff: net/third_party/udt/src/cache.cpp

Issue 6708091: Remove UDT. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/third_party/udt/src/cache.h ('k') | net/third_party/udt/src/ccc.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/third_party/udt/src/cache.cpp
===================================================================
--- net/third_party/udt/src/cache.cpp (revision 78992)
+++ net/third_party/udt/src/cache.cpp (working copy)
@@ -1,254 +0,0 @@
-/*****************************************************************************
-Copyright (c) 2001 - 2009, The Board of Trustees of the University of Illinois.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above
- copyright notice, this list of conditions and the
- following disclaimer.
-
-* Redistributions in binary form must reproduce the
- above copyright notice, this list of conditions
- and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the University of Illinois
- nor the names of its contributors may be used to
- endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*****************************************************************************/
-
-/*****************************************************************************
-written by
- Yunhong Gu, last updated 05/05/2009
-*****************************************************************************/
-
-#ifdef WIN32
- #include <winsock2.h>
- #include <ws2tcpip.h>
- #ifdef LEGACY_WIN32
- #include <wspiapi.h>
- #endif
-#endif
-
-#include <cstring>
-#include "cache.h"
-#include "core.h"
-
-using namespace std;
-
-CCache::CCache(const int& size):
-m_iMaxSize(size),
-m_iHashSize(size * 3),
-m_iCurrSize(0)
-{
- m_vHashPtr.resize(m_iHashSize);
-
- #ifndef WIN32
- pthread_mutex_init(&m_Lock, NULL);
- #else
- m_Lock = CreateMutex(NULL, false, NULL);
- #endif
-}
-
-CCache::~CCache()
-{
- for (list<CCacheItem*>::iterator i = m_StorageList.begin(); i != m_StorageList.end(); ++ i)
- delete *i;
- m_StorageList.clear();
-
- #ifndef WIN32
- pthread_mutex_destroy(&m_Lock);
- #else
- CloseHandle(m_Lock);
- #endif
-}
-
-int CCache::lookup(CCacheItem* data)
-{
- CGuard cacheguard(m_Lock);
-
- int key = data->getKey();
-
- if (key < 0)
- return -1;
-
- if (key >= m_iMaxSize)
- key %= m_iHashSize;
-
- for (list<list<CCacheItem*>::iterator>::iterator i = m_vHashPtr[key].begin(); i != m_vHashPtr[key].end(); ++ i)
- {
- if (*data == ***i)
- {
- // copy the cached info
- *data = ***i;
- return 0;
- }
- }
-
- return -1;
-}
-
-int CCache::update(CCacheItem* data)
-{
- CGuard cacheguard(m_Lock);
-
- int key = data->getKey();
-
- if (key < 0)
- return -1;
-
- if (key >= m_iMaxSize)
- key %= m_iHashSize;
-
- CCacheItem* curr = NULL;
-
- for (list<list<CCacheItem*>::iterator>::iterator i = m_vHashPtr[key].begin(); i != m_vHashPtr[key].end(); ++ i)
- {
- if (*data == ***i)
- {
- // update the existing entry with the new value
- ***i = *data;
- curr = **i;
-
- // remove the current entry
- m_StorageList.erase(*i);
- m_vHashPtr[key].erase(i);
-
- // re-insert to the front
- m_StorageList.push_front(curr);
- m_vHashPtr[key].push_front(m_StorageList.begin());
-
- return 0;
- }
- }
-
- // create new entry and insert to front
- curr = data->clone();
- m_StorageList.push_front(curr);
- m_vHashPtr[key].push_front(m_StorageList.begin());
-
- ++ m_iCurrSize;
- if (m_iCurrSize >= m_iMaxSize)
- {
- CCacheItem* last_data = m_StorageList.back();
- int last_key = last_data->getKey() % m_iHashSize;
-
- for (list<list<CCacheItem*>::iterator>::iterator i = m_vHashPtr[last_key].begin(); i != m_vHashPtr[last_key].end(); ++ i)
- {
- if (*last_data == ***i)
- {
- m_vHashPtr[last_key].erase(i);
- break;
- }
- }
-
- delete last_data;
- m_StorageList.pop_back();
- -- m_iCurrSize;
- }
-
- return 0;
-}
-
-
-CInfoBlock& CInfoBlock::operator=(CCacheItem& obj)
-{
- try
- {
- const CInfoBlock& real_obj = dynamic_cast<CInfoBlock&>(obj);
-
- std::copy(real_obj.m_piIP, real_obj.m_piIP + 3, m_piIP);
- m_iIPversion = real_obj.m_iIPversion;
- m_ullTimeStamp = real_obj.m_ullTimeStamp;
- m_iRTT = real_obj.m_iRTT;
- m_iBandwidth = real_obj.m_iBandwidth;
- m_iLossRate = real_obj.m_iLossRate;
- m_iReorderDistance = real_obj.m_iReorderDistance;
- m_dInterval = real_obj.m_dInterval;
- m_dCWnd = real_obj.m_dCWnd;
- }
- catch (...)
- {
- }
-
- return *this;
-}
-
-bool CInfoBlock::operator==(CCacheItem& obj)
-{
- try
- {
- const CInfoBlock& real_obj = dynamic_cast<CInfoBlock&>(obj);
-
- if (m_iIPversion != real_obj.m_iIPversion)
- return false;
-
- else if (m_iIPversion == AF_INET)
- return (m_piIP[0] == real_obj.m_piIP[0]);
-
- for (int i = 0; i < 4; ++ i)
- {
- if (m_piIP[i] != real_obj.m_piIP[i])
- return false;
- }
- }
- catch (...)
- {
- return false;
- }
-
- return true;}
-
-CInfoBlock* CInfoBlock::clone()
-{
- CInfoBlock* obj = new CInfoBlock;
-
- std::copy(m_piIP, m_piIP + 3, obj->m_piIP);
- obj->m_iIPversion = m_iIPversion;
- obj->m_ullTimeStamp = m_ullTimeStamp;
- obj->m_iRTT = m_iRTT;
- obj->m_iBandwidth = m_iBandwidth;
- obj->m_iLossRate = m_iLossRate;
- obj->m_iReorderDistance = m_iReorderDistance;
- obj->m_dInterval = m_dInterval;
- obj->m_dCWnd = m_dCWnd;
-
- return obj;
-}
-
-int CInfoBlock::getKey()
-{
- if (m_iIPversion == AF_INET)
- return m_piIP[0];
-
- return m_piIP[0] + m_piIP[1] + m_piIP[2] + m_piIP[3];
-}
-
-void CInfoBlock::convert(const sockaddr* addr, const int& ver, uint32_t ip[])
-{
- if (ver == AF_INET)
- {
- ip[0] = ((sockaddr_in*)addr)->sin_addr.s_addr;
- ip[1] = ip[2] = ip[3] = 0;
- }
- else
- {
- memcpy((char*)ip, (char*)((sockaddr_in6*)addr)->sin6_addr.s6_addr, 16);
- }
-}
« no previous file with comments | « net/third_party/udt/src/cache.h ('k') | net/third_party/udt/src/ccc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698