summaryrefslogtreecommitdiff
path: root/TAO/tao/IORManipulation/IORManip_IIOP_Filter.h
diff options
context:
space:
mode:
authorelliott_c <elliott_c@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-05-07 11:46:18 +0000
committerelliott_c <elliott_c@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-05-07 11:46:18 +0000
commit7486d27d15ccc31c9a72b8509642f9b907a03c8f (patch)
treeb8e7a7427149ac1bfb70df63366098b03964c3b9 /TAO/tao/IORManipulation/IORManip_IIOP_Filter.h
parent5b4a98766e7972c0fb7791a86be5f0711a1936ae (diff)
downloadATCD-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.h88
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 */