ProtoLib Notes
File Structure
KIT_SRC = $(COMMON)/protoDebug.cpp $(COMMON)/protoAddress.cpp \
$(COMMON)/protoSocket.cpp $(COMMON)/protoTimer.cpp \
$(COMMON)/protoChannel.cpp $(COMMON)/protoDispatcher.cpp \
$(COMMON)/protoCap.cpp $(COMMON)/protoApp.cpp \
$(COMMON)/protoTree.cpp $(COMMON)/protoRouteTable.cpp \
$(COMMON)/protoRouteMgr.cpp $(COMMON)/protoPipe.cpp \
$(COMMON)/protoBitmask.cpp $(COMMON)/protoPkt.cpp \
$(COMMON)/protoPktRTP.cpp $(COMMON)/protoPktIP.cpp \
$(COMMON)/protoPktETH.cpp $(COMMON)/protoPktARP.cpp \
$(SYSTEM_SRC)
Porting
SYSTEM_SRC
in the above includes things like linuxRouteMgr.cc
for linux compilations. linuxRouteManager.cc
turns on IP forwarding and getting/deleting routes. This would have to be reimplemented for a port.
A port would also have to extend the following:
ProtoSimAgent
, which manages sockets, reads, write, multicast group membership, etc. It also seems to provide an interface to run system commands.
TimerHandler
, which provides hooks to fetch the system time, create timers, etc.