metaproxy  1.21.0
Classes | Private Member Functions | Private Attributes | Friends | List of all members
metaproxy_1::filter::FrontendNet::PeerStat Class Reference
Collaboration diagram for metaproxy_1::filter::FrontendNet::PeerStat:
Collaboration graph

Classes

class  Item
 

Private Member Functions

 PeerStat ()
 
 ~PeerStat ()
 
size_t get (const std::string &peer)
 
size_t add (const std::string &peer)
 
size_t remove (const std::string &peer)
 

Private Attributes

Itemitems
 

Friends

class FrontendNet
 

Detailed Description

Definition at line 50 of file filter_frontend_net.cpp.

Constructor & Destructor Documentation

◆ PeerStat()

mp::filter::FrontendNet::PeerStat::PeerStat ( )
private

Definition at line 978 of file filter_frontend_net.cpp.

◆ ~PeerStat()

mp::filter::FrontendNet::PeerStat::~PeerStat ( )
private

Definition at line 983 of file filter_frontend_net.cpp.

984 {
985  while (items)
986  {
987  Item *n = items->next;
988  delete items;
989  items = n;
990  }
991 }

References metaproxy_1::filter::FrontendNet::PeerStat::Item::next.

Member Function Documentation

◆ add()

size_t mp::filter::FrontendNet::PeerStat::add ( const std::string &  peer)
private

Definition at line 994 of file filter_frontend_net.cpp.

995 {
996  Item *n = items;
997  for (; n; n = n->next)
998  {
999  if (peer == n->m_peer)
1000  {
1001  n->cnt++;
1002  return n->cnt;
1003  }
1004  }
1005  n = new Item();
1006  n->cnt = 1;
1007  n->m_peer = peer;
1008  n->next = items;
1009  items = n;
1010  return n->cnt;
1011 }

References metaproxy_1::filter::FrontendNet::PeerStat::Item::cnt, metaproxy_1::filter::FrontendNet::PeerStat::Item::m_peer, and metaproxy_1::filter::FrontendNet::PeerStat::Item::next.

Referenced by metaproxy_1::filter::FrontendNet::ZAssocChild::ZAssocChild().

◆ get()

size_t mp::filter::FrontendNet::PeerStat::get ( const std::string &  peer)
private

Definition at line 1013 of file filter_frontend_net.cpp.

1014 {
1015  Item *n = items;
1016  for (; n; n = n->next)
1017  {
1018  if (peer == n->m_peer)
1019  return n->cnt;
1020  }
1021  return 0;
1022 }

References metaproxy_1::filter::FrontendNet::PeerStat::Item::cnt, metaproxy_1::filter::FrontendNet::PeerStat::Item::m_peer, and metaproxy_1::filter::FrontendNet::PeerStat::Item::next.

◆ remove()

size_t mp::filter::FrontendNet::PeerStat::remove ( const std::string &  peer)
private

Definition at line 1024 of file filter_frontend_net.cpp.

1025 {
1026  Item **np = &items;
1027  for (; *np; np = &(*np)->next)
1028  {
1029  Item *n = *np;
1030  if (peer == n->m_peer)
1031  {
1032  if (--n->cnt == 0)
1033  {
1034  *np = n->next;
1035  delete n;
1036  return 0;
1037  }
1038  return n->cnt;
1039  }
1040  }
1041  return 0;
1042 }

References metaproxy_1::filter::FrontendNet::PeerStat::Item::cnt, metaproxy_1::filter::FrontendNet::PeerStat::Item::m_peer, and metaproxy_1::filter::FrontendNet::PeerStat::Item::next.

Friends And Related Function Documentation

◆ FrontendNet

friend class FrontendNet
friend

Definition at line 51 of file filter_frontend_net.cpp.

Member Data Documentation

◆ items

Item* metaproxy_1::filter::FrontendNet::PeerStat::items
private

Definition at line 63 of file filter_frontend_net.cpp.


The documentation for this class was generated from the following file: