rina.ipcProcess.impl
Class IPCProcessImpl

java.lang.Object
  extended by java.lang.Thread
      extended by rina.ipcProcess.impl.IPCProcessImpl
All Implemented Interfaces:
java.lang.Runnable, IPCProcessAPI, IPCProcessRIBAPI

public class IPCProcessImpl
extends java.lang.Thread
implements IPCProcessAPI, IPCProcessRIBAPI

IPC process Implementation: this task creates and monitors a flow and provides any management over its life time


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
IPCProcessImpl(RINAConfig config)
          DIF0
IPCProcessImpl(java.lang.String IPCName, java.lang.String IDDName)
          Non-0 DIF
IPCProcessImpl(java.lang.String IPCName, java.lang.String IDDName, boolean appFlag)
          APP
 
Method Summary
 void addUnderlyingIPC(IPCProcessImpl ipc)
           
 void addUpperIPC(java.lang.String upperIPCName, MessageQueue dtpMsgQueue, MessageQueue cdapMsgQueue)
           
 int allocateFlow(java.lang.String srcName, java.lang.String dstName)
           
 int allocateFlowResponse(java.lang.String srcIPCName, java.lang.String dstIPCName, java.lang.String dstUnderlyingIPC, int dstUnderlyingIPCPort, int result)
           
 java.lang.String checkReachablity(java.lang.String appName)
           
 int createPub(java.lang.String appName, java.lang.String attribute)
           
 int createSub(java.lang.String appName, int frequency, java.lang.String attribute)
           
 void deallocate(int portID)
           
 void deletePub(java.lang.String appName, int pubID)
           
 void deleteSub(java.lang.String appName, int subID)
           
 void enrollment(java.lang.String DIFName)
          enrollment phase in a DIF
 MessageQueue getCdapMsgQueue()
           
 java.lang.String getDIFName()
           
 FlowAllocatorImpl getFlowAllocator()
           
 java.lang.String getIDDName()
           
 java.lang.String getIPCName()
           
 IRM getIrm()
           
 void getNeighboursAPPToPortID()
          get Neighbors Application To PortID mapping
 RIBImpl getRib()
           
 RIBDaemonImpl getRIBdaemon()
           
 RoutingDaemon getRoutingDaemon()
           
 TCPFlowManager getTcpManager()
           
 void getUpperIPCsUsingIPCFromNMS(java.lang.String ipcName)
           
 int initDIF(java.lang.String NMSName, java.lang.String dstName, java.lang.String appName)
           
 void initEnrollmentComponent(java.lang.String DIFName)
          for Non-0 DIF
 void joinDIF(java.lang.String NMSName, java.lang.String appName)
           
 void queryDIFMemberList()
           
 void queryIDDServiceAndJoinDIF(java.lang.String serviceName)
           
 java.lang.Object readSub(java.lang.String appName, int subID)
           
 byte[] receive(int portID)
           
 void registerApplicationTONMS(java.lang.String applicationName, int port)
           
 void registerToIDD(java.lang.String serviceType, java.lang.String serviceName)
           
 void run()
           
 void send(int portID, byte[] msg)
           
 void setCdapMsgQueue(MessageQueue cdapMsgQueue)
           
 void setDIFName(java.lang.String dIFName)
           
 void setFlowAllocator(FlowAllocatorImpl flowAllocator)
           
 void setIDDName(java.lang.String iDDName)
           
 void setIPCName(java.lang.String iPCName)
           
 void setIrm(IRM irm)
           
 void setRib(RIBImpl rib)
           
 void setRIBdaemon(RIBDaemonImpl rIBdaemon)
           
 void setRoutingDaemon(RoutingDaemon routingDaemon)
           
 void setTcpManager(TCPFlowManager tcpManager)
           
 void testClient(java.lang.String serverName)
           
 void writePub(java.lang.String appName, int pubID, java.lang.Object msg)
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IPCProcessImpl

public IPCProcessImpl(RINAConfig config)
DIF0

Parameters:
config -

IPCProcessImpl

public IPCProcessImpl(java.lang.String IPCName,
                      java.lang.String IDDName)
Non-0 DIF

Parameters:
IPCName -
IDDName -

IPCProcessImpl

public IPCProcessImpl(java.lang.String IPCName,
                      java.lang.String IDDName,
                      boolean appFlag)
APP

Parameters:
IPCName -
Method Detail

initEnrollmentComponent

public void initEnrollmentComponent(java.lang.String DIFName)
for Non-0 DIF

Parameters:
DIFName -

enrollment

public void enrollment(java.lang.String DIFName)
enrollment phase in a DIF


registerToIDD

public void registerToIDD(java.lang.String serviceType,
                          java.lang.String serviceName)

queryIDDServiceAndJoinDIF

public void queryIDDServiceAndJoinDIF(java.lang.String serviceName)

getNeighboursAPPToPortID

public void getNeighboursAPPToPortID()
get Neighbors Application To PortID mapping


registerApplicationTONMS

public void registerApplicationTONMS(java.lang.String applicationName,
                                     int port)
Parameters:
upperIPCName - register upper application(IPC) that using this IPC to NMS here NMS works as a DNS in the DIF resolve uppering DIF IPC to low DIF IPC

getUpperIPCsUsingIPCFromNMS

public void getUpperIPCsUsingIPCFromNMS(java.lang.String ipcName)
Parameters:
ipcName -

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

queryDIFMemberList

public void queryDIFMemberList()

addUnderlyingIPC

public void addUnderlyingIPC(IPCProcessImpl ipc)

addUpperIPC

public void addUpperIPC(java.lang.String upperIPCName,
                        MessageQueue dtpMsgQueue,
                        MessageQueue cdapMsgQueue)

allocateFlow

public int allocateFlow(java.lang.String srcName,
                        java.lang.String dstName)
Specified by:
allocateFlow in interface IPCProcessAPI

allocateFlowResponse

public int allocateFlowResponse(java.lang.String srcIPCName,
                                java.lang.String dstIPCName,
                                java.lang.String dstUnderlyingIPC,
                                int dstUnderlyingIPCPort,
                                int result)

initDIF

public int initDIF(java.lang.String NMSName,
                   java.lang.String dstName,
                   java.lang.String appName)

joinDIF

public void joinDIF(java.lang.String NMSName,
                    java.lang.String appName)

testClient

public void testClient(java.lang.String serverName)

deallocate

public void deallocate(int portID)
Specified by:
deallocate in interface IPCProcessAPI

send

public void send(int portID,
                 byte[] msg)
          throws java.lang.Exception
Specified by:
send in interface IPCProcessAPI
Throws:
java.lang.Exception

receive

public byte[] receive(int portID)
Specified by:
receive in interface IPCProcessAPI

checkReachablity

public java.lang.String checkReachablity(java.lang.String appName)

createSub

public int createSub(java.lang.String appName,
                     int frequency,
                     java.lang.String attribute)
Specified by:
createSub in interface IPCProcessRIBAPI

readSub

public java.lang.Object readSub(java.lang.String appName,
                                int subID)
Specified by:
readSub in interface IPCProcessRIBAPI

deleteSub

public void deleteSub(java.lang.String appName,
                      int subID)
Specified by:
deleteSub in interface IPCProcessRIBAPI

createPub

public int createPub(java.lang.String appName,
                     java.lang.String attribute)
Specified by:
createPub in interface IPCProcessRIBAPI

deletePub

public void deletePub(java.lang.String appName,
                      int pubID)
Specified by:
deletePub in interface IPCProcessRIBAPI

writePub

public void writePub(java.lang.String appName,
                     int pubID,
                     java.lang.Object msg)
Specified by:
writePub in interface IPCProcessRIBAPI

getDIFName

public java.lang.String getDIFName()
Returns:
the dIFName

setDIFName

public void setDIFName(java.lang.String dIFName)
Parameters:
dIFName - the dIFName to set

getIPCName

public java.lang.String getIPCName()
Returns:
the iPCName

setIPCName

public void setIPCName(java.lang.String iPCName)
Parameters:
iPCName - the iPCName to set

getRIBdaemon

public RIBDaemonImpl getRIBdaemon()
Returns:
the rIBdaemon

setRIBdaemon

public void setRIBdaemon(RIBDaemonImpl rIBdaemon)
Parameters:
rIBdaemon - the rIBdaemon to set

getCdapMsgQueue

public MessageQueue getCdapMsgQueue()
Returns:
the cdapMsgQueue

getFlowAllocator

public FlowAllocatorImpl getFlowAllocator()
Returns:
the flowAllocator

setFlowAllocator

public void setFlowAllocator(FlowAllocatorImpl flowAllocator)
Parameters:
flowAllocator - the flowAllocator to set

setCdapMsgQueue

public void setCdapMsgQueue(MessageQueue cdapMsgQueue)
Parameters:
cdapMsgQueue - the cdapMsgQueue to set

getIDDName

public java.lang.String getIDDName()
Returns:
the iDDName

setIDDName

public void setIDDName(java.lang.String iDDName)
Parameters:
iDDName - the iDDName to set

getTcpManager

public TCPFlowManager getTcpManager()
Returns:
the tcpManager

setTcpManager

public void setTcpManager(TCPFlowManager tcpManager)
Parameters:
tcpManager - the tcpManager to set

getIrm

public IRM getIrm()
Returns:
the irm

setIrm

public void setIrm(IRM irm)
Parameters:
irm - the irm to set

getRoutingDaemon

public RoutingDaemon getRoutingDaemon()
Returns:
the routingDaemon

setRoutingDaemon

public void setRoutingDaemon(RoutingDaemon routingDaemon)
Parameters:
routingDaemon - the routingDaemon to set

getRib

public RIBImpl getRib()
Returns:
the rib

setRib

public void setRib(RIBImpl rib)
Parameters:
rib - the rib to set