AMVI Source Code


Download Complete Source Code (amsource.zip)

View Individual Source Files

AM Source Code
File Description
am.h
am.cpp
Implementation of several AM2 API.
Our implementation covers over 80% of the API.
amlib.mak Standard makefile to build AMVI.
amns.h
amns.cpp
Implementation of the name service extensions the AM2.

cAMLayer.h
cAMLayer.cpp

The active messages layer. Only one layer is created per process.
cBundle.h
cBundle.cpp
Implementation of AM bundles. Bundles contain endpoints and start up two seperate threads per bundle, a thread to receive incoming connections to an endpoint in the bundle and a thread to receive incoming active messages for an endpoint in the bundle.
cConnection.h
cConnection.cpp
Implementation of an active messages connection. This class handles setting up connections with remote endpoints and acts as a request/reply transport. It uses a sliding window for flow control.
cCriticalSection.h Critical section guard. Uses NT's EnterCriticalSection and LeaveCriticalSection functions.
cEndpoint.h
cEndpoint.cpp
Implementation of AM endpoints. Each endpoint contains a handler table for registered receive and reply handlers, and a translation table for mapping remote endpoints.
cFifo.h
cFifo.cpp
General purpose FIFO queue. This is used for non-critical path fifo activities, such as holding a list of connections that are waiting to be retired.
cHashTable.h
cHashTable.cpp
General purpose hashtable. This is used to hold a list of all active connections so that they can be looked up on asynchronous error.
cMutex.h General purpose semaphore.
cPacket.h
cPacket.cpp
The active message packet.
cStack.h
cStack.cpp
This is a simple stack class that is used for critical path storing and retrieving of free packets, etc.
Header.h Defines AM packet header.
Node.h This is used by both the cHashTable and cFifo classes as a node in their data structure.
stdam.h AM defines common to all classes.


AMTest Source Code
File Description
amtest.mak Standard makefile to build AMTest.
handlers.h
handlers.cpp
AM handlers for the specific tests.
main.cpp Main test file. For more information on the test
suite, please refer to the Description of ACTest
section of the Using the Toolkit webpage.


Name Service Source Code
File Description
cCriticalSection.h General purpose guard for critical sections.
cHashTable.h
cHashTable.cpp
General purpose hashtable.
cNS.h
cNS.cpp
Implementation of the name service.
ns_server.cpp VI specific implementation of name service functions.
ns_server.mak Standard makefile to build the name service.

Back to Main Page
Website created by: Ted Bonkenburg ( tb@cs.cornell.edu) and Vicky Weissman ( vickyw@cs.cornell.edu)