diff options
author | elliott_c <elliott_c@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-05-07 11:46:18 +0000 |
---|---|---|
committer | elliott_c <elliott_c@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-05-07 11:46:18 +0000 |
commit | 7486d27d15ccc31c9a72b8509642f9b907a03c8f (patch) | |
tree | b8e7a7427149ac1bfb70df63366098b03964c3b9 /TAO/tao/IORManipulation/IORManip_IIOP_Filter.h | |
parent | 5b4a98766e7972c0fb7791a86be5f0711a1936ae (diff) | |
download | ATCD-7486d27d15ccc31c9a72b8509642f9b907a03c8f.tar.gz |
ChangeLogTag: Mon May 7 11:46:47 UTC 2007 Chad Elliott <elliott_c@ociweb.com>
Diffstat (limited to 'TAO/tao/IORManipulation/IORManip_IIOP_Filter.h')
-rw-r--r-- | TAO/tao/IORManipulation/IORManip_IIOP_Filter.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/TAO/tao/IORManipulation/IORManip_IIOP_Filter.h b/TAO/tao/IORManipulation/IORManip_IIOP_Filter.h new file mode 100644 index 00000000000..06e602b1e8c --- /dev/null +++ b/TAO/tao/IORManipulation/IORManip_IIOP_Filter.h @@ -0,0 +1,88 @@ +// $Id$ + +// ========================================================================= +// +// = LIBRARY +// TAO +// +// = FILENAME +// IORManip_IIOP_Filter.h +// +// = AUTHOR +// Chad Elliott <elliott_c@ociweb.com> +// +// ========================================================================= + +#ifndef TAO_IORMANIP_IIOP_FILTER_H +#define TAO_IORMANIP_IIOP_FILTER_H +#include /**/ "ace/pre.h" + +#include "IORManip_Filter.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/IIOP_EndpointsC.h" +#include "ace/SString.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_IIOP_Profile; +namespace TAO +{ + class IIOPEndpointSequence; +} + +class TAO_IORManip_Export TAO_IORManip_IIOP_Filter: public TAO_IORManip_Filter +{ +public: + struct Profile_Info + { + ACE_CString host_name_; + TAO_GIOP_Message_Version version_; + CORBA::UShort port_; + }; + + /// Constructor. + TAO_IORManip_IIOP_Filter (void); + + /// Destructor. + virtual ~TAO_IORManip_IIOP_Filter (void); + + /// Compares the profile to the profile info. + virtual CORBA::Boolean compare_profile_info ( + const TAO_IORManip_IIOP_Filter::Profile_Info& left, + const TAO_IORManip_IIOP_Filter::Profile_Info& right); + + /// Empty virtual method to match on the profile info. + /// Users must provide an implementation to use the first + /// form of sanitize_profiles(). + virtual CORBA::Boolean profile_info_matches ( + const TAO_IORManip_IIOP_Filter::Profile_Info& pinfo); + +protected: + + /// This is the bulk of the filtering code. + virtual void filter_and_add (TAO_Profile* profile, + TAO_MProfile& profiles, + TAO_Profile* guideline = 0); + +private: + + /// Fill in the Profile_Info with information from the profile. + int fill_profile_info (TAO_Profile* profile, + TAO_IORManip_IIOP_Filter::Profile_Info& pinfo); + + /// Get the endpoint sequence from the profile. + int get_endpoints (TAO_Profile* profile, + TAO::IIOPEndpointSequence& endpoints); + + /// Allocate a new IIOP Profile based on the profile passed in. + TAO_IIOP_Profile* create_profile (TAO_Profile* profile); +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" +#endif /* TAO_IORMANIP_IIOP_FILTER_H */ |