*** empty log message ***

git-svn-id: http://yate.null.ro/svn/yate/trunk@756 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2006-04-18 23:24:19 +00:00
parent 949c3c2480
commit cb5d4ed539
1 changed files with 70 additions and 29 deletions

View File

@ -49,7 +49,10 @@ namespace TelEngine {
class SignallingEngine; class SignallingEngine;
class SignallingReceiver; class SignallingReceiver;
class SS7Layer3; class SCCPUser;
class SS7MTP3;
class SS7TCAP;
class ISDNLayer3;
/** /**
* Interface to an abstract signalling component that is managed by an engine. * Interface to an abstract signalling component that is managed by an engine.
@ -61,12 +64,12 @@ class YSS7_API SignallingComponent : public GenObject
friend class SignallingEngine; friend class SignallingEngine;
public: public:
/** /**
* Destructor * Destructor, detaches the engine and other components
*/ */
virtual ~SignallingComponent(); virtual ~SignallingComponent();
/** /**
* Get the @ref SignallingEngine that manages this component * Get the @ref TelEngine::SignallingEngine that manages this component
* @return Pointer to engine or NULL if not managed by an engine * @return Pointer to engine or NULL if not managed by an engine
*/ */
inline SignallingEngine* engine() const inline SignallingEngine* engine() const
@ -206,6 +209,20 @@ class YSS7_API ASPUser
*/ */
class YSS7_API SCCP class YSS7_API SCCP
{ {
public:
/**
* Destructor
*/
virtual ~SCCP();
/**
* Attach an user to this SS7 SCCP
* @param sccp Pointer to the SCCP user
*/
virtual void attach(SCCPUser* user);
protected:
ObjList m_users;
}; };
/** /**
@ -214,6 +231,12 @@ class YSS7_API SCCP
*/ */
class YSS7_API SCCPUser class YSS7_API SCCPUser
{ {
public:
/**
* Attach as user to a SS7 SCCP
* @param sccp Pointer to the SCCP to use
*/
virtual void attach(SCCP* sccp);
}; };
/** /**
@ -222,6 +245,15 @@ class YSS7_API SCCPUser
*/ */
class YSS7_API TCAPUser class YSS7_API TCAPUser
{ {
public:
/**
* Attach as user to a SS7 TCAP
* @param tcap Pointer to the TCAP to use
*/
void attach(SS7TCAP* tcap);
protected:
SS7TCAP* m_tcap;
}; };
/** /**
@ -232,13 +264,20 @@ class YSS7_API SS7Layer2 : virtual public SignallingComponent
{ {
public: public:
/** /**
* Attach a SS7 Layer 3 (network) to the data link * Attach a SS7 MTP3 (network) to the data link
* @param link Pointer to network to attach * @param mtp3 Pointer to network to attach
*/ */
void attach(SS7Layer3* network); void attach(SS7MTP3* mtp3);
/**
* Get the MTP3 network that works with this data link
* @return Pointer to the SS7MTP3 to which the messages are sent
*/
inline SS7MTP3* mtp3() const
{ return m_mtp3; }
protected: protected:
SS7Layer3* m_network; SS7MTP3* m_mtp3;
}; };
/** /**
@ -257,22 +296,6 @@ class YSS7_API SS7Layer4 : virtual public SignallingComponent
{ {
}; };
/**
* An interface to a Layer 2 (Q.921) ISDN message transport
* @short Abstract ISDN layer 2 (Q.921) message transport
*/
class YSS7_API ISDNLayer2 : virtual public SignallingComponent
{
};
/**
* An interface to a Layer 3 (Q.931) ISDN message transport
* @short Abstract ISDN layer 3 (Q.931) message transport
*/
class YSS7_API ISDNLayer3 : virtual public SignallingComponent
{
};
/** /**
* RFC4165 SS7 Layer 2 implementation over SCTP/IP * RFC4165 SS7 Layer 2 implementation over SCTP/IP
* @short SIGTRAN MTP2 User Peer-to-Peer Adaptation Layer * @short SIGTRAN MTP2 User Peer-to-Peer Adaptation Layer
@ -368,12 +391,6 @@ class YSS7_API SS7SUA : public SIGTRAN, public SCCP
*/ */
class YSS7_API SS7ASP : public SCCPUser, virtual public SignallingComponent class YSS7_API SS7ASP : public SCCPUser, virtual public SignallingComponent
{ {
/**
* Attach a SS7 SCCP to the ASP
* @param sccp Pointer to the SCCP to attach
*/
void attach(SCCP* sccp);
private: private:
ObjList m_sccps; ObjList m_sccps;
}; };
@ -392,6 +409,30 @@ class YSS7_API SS7TCAP : public ASPUser, virtual public SignallingComponent
}; };
// The following classes are ISDN, not SS7, but they use the same signalling
// interfaces so they will remain here
/**
* An interface to a Layer 2 (Q.921) ISDN message transport
* @short Abstract ISDN layer 2 (Q.921) message transport
*/
class YSS7_API ISDNLayer2 : virtual public SignallingComponent
{
/**
* Attach an ISDN Q.931 call control
* @param user Pointer to the Q.931 call control to attach
*/
void attach(ISDNLayer3* q931);
};
/**
* An interface to a Layer 3 (Q.931) ISDN message transport
* @short Abstract ISDN layer 3 (Q.931) message transport
*/
class YSS7_API ISDNLayer3 : virtual public SignallingComponent
{
};
/** /**
* *
* @short ISDN Q.921 implementation on top of a hardware interface * @short ISDN Q.921 implementation on top of a hardware interface