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 )
|