187 lines
5.2 KiB
C
187 lines
5.2 KiB
C
|
#if !defined( calltoDisambiguator_h )
|
||
|
#define calltoDisambiguator_h
|
||
|
//--------------------------------------------------------------------------//
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
// Application Header Files. //
|
||
|
//--------------------------------------------------------------------------//
|
||
|
#include "callto.h"
|
||
|
#include "calltoContext.h"
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
// interface IDisambiguator. //
|
||
|
//--------------------------------------------------------------------------//
|
||
|
class IDisambiguator
|
||
|
{
|
||
|
protected: // protected constructors --------------------------------//
|
||
|
|
||
|
IDisambiguator(){};
|
||
|
|
||
|
|
||
|
public: // public destructor ------------------------------------//
|
||
|
|
||
|
virtual
|
||
|
~IDisambiguator(){};
|
||
|
|
||
|
|
||
|
public: // public methods ----------------------------------------//
|
||
|
|
||
|
virtual
|
||
|
HRESULT
|
||
|
disambiguate
|
||
|
(
|
||
|
const ICalltoContext * const calltoContext,
|
||
|
IMutableCalltoCollection * const calltoCollection,
|
||
|
const ICallto * const resolvedCallto
|
||
|
) = 0;
|
||
|
|
||
|
}; // End of interface IDisambiguator.
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
// class CGatekeeperDisambiguator. //
|
||
|
//--------------------------------------------------------------------------//
|
||
|
class CGatekeeperDisambiguator: public IDisambiguator
|
||
|
{
|
||
|
public: // public methods (IDisambiguator) --------------------//
|
||
|
|
||
|
virtual
|
||
|
HRESULT
|
||
|
disambiguate
|
||
|
(
|
||
|
const ICalltoContext * const calltoContext,
|
||
|
IMutableCalltoCollection * const calltoCollection,
|
||
|
const ICallto * const resolvedCallto
|
||
|
);
|
||
|
|
||
|
}; // End of CGatekeeperDisambiguator.
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
// class CGatewayDisambiguator. //
|
||
|
//--------------------------------------------------------------------------//
|
||
|
class CGatewayDisambiguator: public IDisambiguator
|
||
|
{
|
||
|
public: // public methods (IDisambiguator) --------------------//
|
||
|
|
||
|
virtual
|
||
|
HRESULT
|
||
|
disambiguate
|
||
|
(
|
||
|
const ICalltoContext * const calltoContext,
|
||
|
IMutableCalltoCollection * const calltoCollection,
|
||
|
const ICallto * const resolvedCallto
|
||
|
);
|
||
|
|
||
|
}; // End of CGatewayDisambiguator.
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
// class CComputerDisambiguator. //
|
||
|
//--------------------------------------------------------------------------//
|
||
|
class CComputerDisambiguator: public IDisambiguator
|
||
|
{
|
||
|
public: // public methods (IDisambiguator) --------------------//
|
||
|
|
||
|
virtual
|
||
|
HRESULT
|
||
|
disambiguate
|
||
|
(
|
||
|
const ICalltoContext * const calltoContext,
|
||
|
IMutableCalltoCollection * const calltoCollection,
|
||
|
const ICallto * const resolvedCallto
|
||
|
);
|
||
|
|
||
|
}; // End of CComputerDisambiguator.
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
// class CILSDisambiguator. //
|
||
|
//--------------------------------------------------------------------------//
|
||
|
class CILSDisambiguator: public IDisambiguator
|
||
|
{
|
||
|
public: // public methods (IDisambiguator) --------------------//
|
||
|
|
||
|
virtual
|
||
|
HRESULT
|
||
|
disambiguate
|
||
|
(
|
||
|
const ICalltoContext * const calltoContext,
|
||
|
IMutableCalltoCollection * const calltoCollection,
|
||
|
const ICallto * const resolvedCallto
|
||
|
);
|
||
|
|
||
|
}; // End of CILSDisambiguator.
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
// class CUnrecognizedDisambiguator. //
|
||
|
//--------------------------------------------------------------------------//
|
||
|
class CUnrecognizedDisambiguator: public IDisambiguator
|
||
|
{
|
||
|
public: // public methods (IDisambiguator) --------------------//
|
||
|
|
||
|
virtual
|
||
|
HRESULT
|
||
|
disambiguate
|
||
|
(
|
||
|
const ICalltoContext * const calltoContext,
|
||
|
IMutableCalltoCollection * const calltoCollection,
|
||
|
const ICallto * const resolvedCallto
|
||
|
);
|
||
|
|
||
|
}; // End of CUnrecognizedDisambiguator.
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
// class CCalltoDisambiguator. //
|
||
|
//--------------------------------------------------------------------------//
|
||
|
class CCalltoDisambiguator
|
||
|
{
|
||
|
public: // public constructors ------------------------------------//
|
||
|
|
||
|
CCalltoDisambiguator(void);
|
||
|
|
||
|
|
||
|
public: // public destructor ------------------------------------//
|
||
|
|
||
|
~CCalltoDisambiguator();
|
||
|
|
||
|
|
||
|
public: // public methods ----------------------------------------//
|
||
|
|
||
|
HRESULT
|
||
|
disambiguate
|
||
|
(
|
||
|
const ICalltoContext * const calltoContext,
|
||
|
ICalltoCollection * const resolvedCalltoCollection,
|
||
|
CCalltoCollection * const disambiguatedCalltoCollection
|
||
|
);
|
||
|
|
||
|
|
||
|
private: // private methods ----------------------------------------//
|
||
|
|
||
|
bool
|
||
|
addDisambiguator
|
||
|
(
|
||
|
IDisambiguator * const disambiguator
|
||
|
);
|
||
|
|
||
|
|
||
|
private: // private members ----------------------------------------//
|
||
|
|
||
|
CGatekeeperDisambiguator m_gatekeeperDisambiguator;
|
||
|
CGatewayDisambiguator m_gatewayDisambiguator;
|
||
|
CILSDisambiguator m_ilsDisambiguator;
|
||
|
CComputerDisambiguator m_computerDisambiguator;
|
||
|
CUnrecognizedDisambiguator m_unrecognizedDisambiguator;
|
||
|
|
||
|
IDisambiguator * m_disambiguators[ 5 ];
|
||
|
int m_registeredDisambiguators;
|
||
|
|
||
|
}; // End of class CCalltoDisambiguator.
|
||
|
|
||
|
//--------------------------------------------------------------------------//
|
||
|
#endif // !defined( calltoDisambiguator_h )
|