ewmscp  ..
Public Member Functions | Private Attributes | List of all members
renameEventHandler Class Reference

#include <renameEventHandler.h>

Collaboration diagram for renameEventHandler:
[legend]

Public Member Functions

 renameEventHandler ()=default
 
const renameHalfEventgetRenamePartner (renameHalfEvent::cookieType cookie, const renameHalfEvent::pathType &aSrcPath, const renameHalfEvent::pathType &aDstPath, renameHalfEvent::moveTypeEnum aIsMoveFrom, const singleMap &aMapEntry, renameHalfEvent::timeType::time_point aTimestamp)
 
void forgetRenameEvent (const renameHalfEvent *what)
 
const renameHalfEventgetNextStaleSingle (renameHalfEvent::timeType::duration timeout)
 

Private Attributes

renameHalfEvent::mapType renameEventMap
 
renameHalfEvent::setType renameEventSet
 

Detailed Description

Definition at line 38 of file renameEventHandler.h.

Constructor & Destructor Documentation

◆ renameEventHandler()

renameEventHandler::renameEventHandler ( )
default

Member Function Documentation

◆ forgetRenameEvent()

void renameEventHandler::forgetRenameEvent ( const renameHalfEvent what)
inline

Definition at line 66 of file renameEventHandler.h.

66  {
67  renameEventMap.erase(what->cookie);
68  }

References renameHalfEvent::cookie, and renameEventMap.

Referenced by followJsonRequestProvider::cleanupRenameEvents(), and followJsonRequestProvider::processJson().

Here is the caller graph for this function:

◆ getNextStaleSingle()

const renameHalfEvent* renameEventHandler::getNextStaleSingle ( renameHalfEvent::timeType::duration  timeout)
inline

Definition at line 69 of file renameEventHandler.h.

69  {
70  auto it = renameEventSet.begin();
71  renameHalfEvent::timeType::time_point age_limit = renameHalfEvent::timeType::now() -
72  timeout;
73  if (it != renameEventSet.end() &&
74  (*it)->timestamp < age_limit) {
75  auto retval = *it;
76  renameEventSet.erase(it);
77  return retval;
78  }
79  return nullptr;
80  }

References renameEventSet.

Referenced by followJsonRequestProvider::cleanupRenameEvents().

Here is the caller graph for this function:

◆ getRenamePartner()

const renameHalfEvent* renameEventHandler::getRenamePartner ( renameHalfEvent::cookieType  cookie,
const renameHalfEvent::pathType aSrcPath,
const renameHalfEvent::pathType aDstPath,
renameHalfEvent::moveTypeEnum  aIsMoveFrom,
const singleMap aMapEntry,
renameHalfEvent::timeType::time_point  aTimestamp 
)
inline

Definition at line 43 of file renameEventHandler.h.

48  {
49  auto result = renameEventMap.emplace(std::piecewise_construct,
50  std::forward_as_tuple(cookie),
51  std::forward_as_tuple(cookie,
52  aSrcPath,
53  aDstPath,
54  aIsMoveFrom,
55  aMapEntry,
56  aTimestamp));
57  auto& event = result.first->second;
58  if (result.second) { // no partner found, event is new
59  event.setIterator = renameEventSet.emplace(&event);
60  return nullptr;
61  } else { // partner found, event is old
62  renameEventSet.erase(event.setIterator);
63  return &event;
64  }
65  }

References renameEventMap, and renameEventSet.

Referenced by followJsonRequestProvider::processJson().

Here is the caller graph for this function:

Member Data Documentation

◆ renameEventMap

renameHalfEvent::mapType renameEventHandler::renameEventMap
private

Definition at line 39 of file renameEventHandler.h.

Referenced by forgetRenameEvent(), and getRenamePartner().

◆ renameEventSet

renameHalfEvent::setType renameEventHandler::renameEventSet
private

Definition at line 40 of file renameEventHandler.h.

Referenced by getNextStaleSingle(), and getRenamePartner().


The documentation for this class was generated from the following file:
renameHalfEvent::cookie
cookieType cookie
Definition: renameEventHandler.h:21
renameEventHandler::renameEventMap
renameHalfEvent::mapType renameEventMap
Definition: renameEventHandler.h:39
renameEventHandler::renameEventSet
renameHalfEvent::setType renameEventSet
Definition: renameEventHandler.h:40