INET Framework for OMNeT++/OMNEST
inet::Ieee8022LlcSocketTable Class Reference

#include <Ieee8022LlcSocketTable.h>

Inheritance diagram for inet::Ieee8022LlcSocketTable:

Classes

struct  Socket
 

Public Member Functions

void addSocket (int socketId, int localSap, int remoteSap)
 
void removeSocket (int socketId)
 
std::vector< Socket * > findSockets (int localSap, int remoteSap) const
 

Protected Member Functions

virtual void initialize () override
 

Protected Attributes

std::map< int, Socket * > socketIdToSocketMap
 

Member Function Documentation

◆ addSocket()

void inet::Ieee8022LlcSocketTable::addSocket ( int  socketId,
int  localSap,
int  remoteSap 
)
28 {
29  if (containsKey(socketIdToSocketMap, socketId))
30  throw cRuntimeError("Socket already added");
31  Socket *socket = new Socket(socketId);
32  socket->localSap = localSap;
33  socket->remoteSap = remoteSap;
34  socketIdToSocketMap[socketId] = socket;
35 }

◆ findSockets()

std::vector< Ieee8022LlcSocketTable::Socket * > inet::Ieee8022LlcSocketTable::findSockets ( int  localSap,
int  remoteSap 
) const
49 {
50  std::vector<Ieee8022LlcSocketTable::Socket *> result;
51  for (auto& it : socketIdToSocketMap) {
52  auto socket = it.second;
53  if ((socket->localSap == localSap || socket->localSap == -1) &&
54  (socket->remoteSap == remoteSap || socket->remoteSap == -1))
55  {
56  result.push_back(socket);
57  }
58  }
59  return result;
60 }

◆ initialize()

void inet::Ieee8022LlcSocketTable::initialize ( )
overrideprotectedvirtual
23 {
24  WATCH_PTRMAP(socketIdToSocketMap);
25 }

◆ removeSocket()

void inet::Ieee8022LlcSocketTable::removeSocket ( int  socketId)
38 {
39  auto it = socketIdToSocketMap.find(socketId);
40  if (it != socketIdToSocketMap.end()) {
41  delete it->second;
42  socketIdToSocketMap.erase(it);
43  }
44  else
45  throw cRuntimeError("Socket not found");
46 }

Member Data Documentation

◆ socketIdToSocketMap

std::map<int, Socket *> inet::Ieee8022LlcSocketTable::socketIdToSocketMap
protected

The documentation for this class was generated from the following files:
inet::Ieee8022LlcSocketTable::socketIdToSocketMap
std::map< int, Socket * > socketIdToSocketMap
Definition: Ieee8022LlcSocketTable.h:31
inet::containsKey
bool containsKey(const std::map< K, V, _C > &m, const Tk &a)
Definition: stlutils.h:80