Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

it_bus/reference.h

00001 #ifndef _IT_BUS_REFERENCE_H_
00002 #define _IT_BUS_REFERENCE_H_
00003 
00004 #include <it_bus/sequence_complex_type.h>
00005 #include <it_bus/any.h>
00006 #include <it_bus/array_t.h>
00007 #include <it_bus/complex_type_reader.h>
00008 #include <it_bus/complex_type_writer.h>
00009 #include <it_bus/wsaddressing_xsdTypes.h>
00010 #include <it_cal/auto_ptr.h>
00011 
00012 #include <it_bus/reflect/element_list_impl_t.h>
00013 #include <it_bus/reflect/model_group_impl.h>
00014 #include <it_bus/reflect/complex_type_impl.h>
00015 #include <it_bus/reflect/reflected_nillable_value.h>
00016 #include <it_bus/reflect/reflected_nillable_ptr.h>
00017 
00018 namespace WSDL_Schema
00019 {
00020     class tService;
00021 }
00022 
00023 namespace WS_Addressing
00024 {
00025     class EndpointReferenceUtil;
00026 }
00027 
00028 namespace IT_Bus
00029 {
00030     class ReferencePort;
00031     class IT_ReferencePortReflection;
00032     typedef IT_Reflect::ReflectedNillableValue<ReferencePort> ReferencePortNillable;
00033     typedef IT_Reflect::ReflectedNillablePtr<ReferencePort> ReferencePortNillablePtr;
00034     class Reference;
00035     class IT_ReferenceReflection;
00036     typedef IT_Reflect::ReflectedNillableValue<Reference> ReferenceNillable;
00037     typedef IT_Reflect::ReflectedNillablePtr<Reference> ReferenceNillablePtr;
00038 
00056     class IT_AFC_API ReferencePort : public IT_Bus::SequenceComplexType
00057     {
00058 
00059       public:
00060 
00061         static const IT_Bus::QName&
00062         get_static_type();
00063         
00064         typedef IT_ReferencePortReflection IT_ReflectionType;
00065         friend class IT_ReferencePortReflection;
00066         
00070         ReferencePort();
00071 
00075         ReferencePort(const ReferencePort & copy);
00076 
00080         virtual ~ReferencePort();
00081 
00082         IT_Bus::AnyType &
00083         copy(const IT_Bus::AnyType & rhs);
00084 
00085         ReferencePort &
00086         operator=(const ReferencePort & rhs);
00087 
00088         virtual const IT_Bus::QName &
00089         get_type() const;
00090 
00091         virtual void
00092         write_attributes(
00093             IT_Bus::ComplexTypeWriter & writer
00094         ) const throw((IT_Bus::SerializationException));
00095 
00096         virtual void
00097         read_attributes(
00098             IT_Bus::ComplexTypeReader & reader
00099         ) throw((IT_Bus::DeserializationException));
00100 
00101 
00102         virtual void
00103         write_contents(
00104             IT_Bus::ComplexTypeWriter & writer
00105         ) const throw((IT_Bus::SerializationException));
00106 
00107         virtual void
00108         read_contents(
00109             IT_Bus::ComplexTypeReader & reader
00110         ) throw((IT_Bus::DeserializationException));
00111 
00119         IT_Bus::AnyList &
00120         get_any();
00121 
00129         const IT_Bus::AnyList &
00130         get_any() const;
00131 
00140         void 
00141         set_any(const IT_Vector<IT_Bus::Any> & val);
00142 
00149         IT_Bus::NCName &
00150         get_name();
00151 
00158         const IT_Bus::NCName &
00159         get_name() const;
00160 
00168         void 
00169         set_name(const IT_Bus::NCName & val);
00170 
00177         IT_Bus::QName &
00178         get_binding();
00179 
00186         const IT_Bus::QName &
00187         get_binding() const;
00188 
00196         void 
00197         set_binding(const IT_Bus::QName & val);
00198 
00199         virtual IT_Reflect::Reflection*
00200         get_reflection() throw((IT_Reflect::ReflectException));
00201         
00202         virtual const IT_Reflect::Reflection*
00203         get_reflection() const throw((IT_Reflect::ReflectException));
00204         
00205 
00206       private:
00207 
00208         IT_Bus::AnyList *m_any;
00209         IT_Bus::NCName m_name;
00210         IT_Bus::QName m_binding;
00211     };
00212 
00213     typedef IT_AutoPtr<ReferencePort> ReferencePortPtr;
00214 
00215     class IT_AFC_API IT_ReferencePortReflection :
00216         public IT_Reflect::ReflectionImplT<IT_Bus::ReferencePort>,
00217         public IT_Reflect::ComplexTypeImpl,
00218         public IT_Reflect::ModelGroupImpl
00219     {
00220       public:
00221 
00222         IT_ReferencePortReflection(
00223             const IT_Bus::ReferencePort* value
00224         );
00225         
00226         ~IT_ReferencePortReflection() throw(());
00227         
00228         const IT_Reflect::Reflection*
00229         get_element(
00230             size_t i
00231         ) const throw((IT_Reflect::ReflectException));
00232         
00233         const IT_Reflect::Reflection*
00234         get_element(
00235             const IT_Bus::QName& name
00236         ) const throw((IT_Reflect::ReflectException));
00237         
00238         const IT_Reflect::Reflection*
00239         get_attribute_value(
00240             const IT_Bus::QName& name
00241         ) const throw((IT_Reflect::ReflectException));
00242         
00243         IT_Reflect::Reflection*
00244         use_attribute_value(
00245             const IT_Bus::QName& name
00246         ) throw((IT_Reflect::ReflectException));
00247         
00248         void
00249         remove_attribute(
00250             const IT_Bus::QName& name
00251         ) throw((IT_Reflect::ReflectException));
00252         
00253       private:
00254 
00255         IT_Reflect::Traits<IT_Bus::NCName >::ReflectionType m_name;
00256         IT_Reflect::Traits<IT_Bus::QName >::ReflectionType m_binding;
00257         class IT_ElementNames :
00258             public IT_Vector<IT_Bus::QName>
00259         {
00260           public:
00261 
00262             IT_ElementNames();
00263             
00264         };
00265 
00266         static IT_ElementNames _it_sm_element_names;
00267         class IT_AttributeNames :
00268             public IT_Vector<IT_Bus::QName>
00269         {
00270           public:
00271 
00272             IT_AttributeNames();
00273             
00274         };
00275 
00276         static IT_AttributeNames _it_sm_attribute_names;
00277     };
00278 
00291     class IT_AFC_API Reference : public IT_Bus::SequenceComplexType
00292     {
00293 
00294       public:
00295 
00296         static const IT_Bus::QName&
00297         get_static_type();
00298         
00299         typedef IT_ReferenceReflection IT_ReflectionType;
00300         friend class IT_ReferenceReflection;
00301         
00305         Reference();
00306 
00307         Reference(
00308             const WS_Addressing::EndpointReferenceType& epr
00309         );
00310 
00311 
00315         Reference(
00316             const Reference & copy
00317         );
00318 
00319         
00323         virtual ~Reference();
00324 
00325         IT_Bus::AnyType &
00326         copy(const IT_Bus::AnyType & rhs);
00327 
00328         Reference &
00329         operator=(const Reference & rhs);
00330 
00331         Reference &
00332         operator=(        
00333             const WS_Addressing::EndpointReferenceType & rhs
00334         );
00335 
00336         virtual const IT_Bus::QName &
00337         get_type() const;
00338 
00339         virtual void
00340         write_attributes(
00341             IT_Bus::ComplexTypeWriter & writer
00342         ) const throw((IT_Bus::SerializationException));
00343 
00344         virtual void
00345         read_attributes(
00346             IT_Bus::ComplexTypeReader & reader
00347         ) throw((IT_Bus::DeserializationException));
00348 
00349 
00350         virtual void
00351         write_contents(
00352             IT_Bus::ComplexTypeWriter & writer
00353         ) const throw((IT_Bus::SerializationException));
00354 
00355         virtual void
00356         read_contents(
00357             IT_Bus::ComplexTypeReader & reader
00358         ) throw((IT_Bus::DeserializationException));
00359 
00366         IT_Bus::ElementListT<IT_Bus::ReferencePort> &
00367         get_port();
00368 
00375         const IT_Bus::ElementListT<IT_Bus::ReferencePort> &
00376         get_port() const;
00377 
00385         void 
00386         set_port(const IT_Vector<IT_Bus::ReferencePort> & val);
00387 
00395         IT_Bus::QName &
00396         get_service();
00397 
00405         const IT_Bus::QName &
00406         get_service() const;
00407 
00415         void 
00416         set_service(const IT_Bus::QName & val);
00417 
00425         IT_Bus::String &
00426         get_wsdl_location();
00427 
00435         const IT_Bus::String &
00436         get_wsdl_location() const;
00437 
00445         void 
00446         set_wsdl_location(const IT_Bus::String & val);
00447 
00448         virtual IT_Reflect::Reflection*
00449         get_reflection() throw((IT_Reflect::ReflectException));
00450         
00451         virtual const IT_Reflect::Reflection*
00452         get_reflection() const throw((IT_Reflect::ReflectException));
00453 
00454       private:
00455 
00456         const WS_Addressing::EndpointReferenceType&
00457         get_endpoint_reference() const;
00458         
00459         WS_Addressing::EndpointReferenceType&
00460         get_endpoint_reference();
00461 
00462         void
00463         get_service_from_epr();
00464     
00465         IT_Bus::ElementListT<IT_Bus::ReferencePort> &
00466         get_port_from_epr();
00467 
00468         void
00469         populate_epr_metadata_from_reference(
00470             WS_Addressing::EndpointReferenceType& epr
00471         );
00472 
00473         IT_Bus::ElementListT<IT_Bus::ReferencePort> m_port;
00474         IT_Bus::QName                               m_service_name;
00475         IT_Bus::String                              m_wsdl_location;
00476         WSDL_Schema::tService*                      m_service;
00477         WS_Addressing::EndpointReferenceType        m_endpoint_reference;
00478         bool                                        m_populate_epr_from_reference;
00479 
00480         friend class WS_Addressing::EndpointReferenceUtil;
00481     };
00482 
00483     typedef IT_AutoPtr<Reference> ReferencePtr;
00484 
00485     class IT_AFC_API IT_ReferenceReflection :
00486         public IT_Reflect::ReflectionImplT<IT_Bus::Reference>,
00487         public IT_Reflect::ComplexTypeImpl,
00488         public IT_Reflect::ModelGroupImpl
00489     {
00490       public:
00491 
00492         IT_ReferenceReflection(
00493             const IT_Bus::Reference* value
00494         );
00495         
00496         ~IT_ReferenceReflection() throw(());
00497         
00498         const IT_Reflect::Reflection*
00499         get_element(
00500             size_t i
00501         ) const throw((IT_Reflect::ReflectException));
00502         
00503         const IT_Reflect::Reflection*
00504         get_element(
00505             const IT_Bus::QName& name
00506         ) const throw((IT_Reflect::ReflectException));
00507         
00508         const IT_Reflect::Reflection*
00509         get_attribute_value(
00510             const IT_Bus::QName& name
00511         ) const throw((IT_Reflect::ReflectException));
00512         
00513         IT_Reflect::Reflection*
00514         use_attribute_value(
00515             const IT_Bus::QName& name
00516         ) throw((IT_Reflect::ReflectException));
00517         
00518         void
00519         remove_attribute(
00520             const IT_Bus::QName& name
00521         ) throw((IT_Reflect::ReflectException));
00522         
00523       private:
00524 
00525         IT_Reflect::Traits<IT_Bus::ElementListT<IT_Bus::ReferencePort> >::ReflectionType m_port;
00526         IT_Reflect::Traits<IT_Bus::QName  >::ReflectionType m_service_name;
00527         IT_Reflect::Traits<IT_Bus::String >::ReflectionType m_wsdl_location;
00528         class IT_ElementNames :
00529             public IT_Vector<IT_Bus::QName>
00530         {
00531           public:
00532 
00533             IT_ElementNames();
00534             
00535         };
00536 
00537         static IT_ElementNames _it_sm_element_names;
00538         class IT_AttributeNames :
00539             public IT_Vector<IT_Bus::QName>
00540         {
00541           public:
00542 
00543             IT_AttributeNames();
00544             
00545         };
00546 
00547         static IT_AttributeNames _it_sm_attribute_names;
00548     };
00549 
00550     bool
00551     IT_AFC_API operator==(
00552         const IT_Bus::ReferencePort & lhs,
00553         const IT_Bus::ReferencePort & rhs
00554     );
00555     
00556     bool
00557     IT_AFC_API operator!=(
00558         const IT_Bus::ReferencePort & lhs,
00559         const IT_Bus::ReferencePort & rhs
00560     );
00561     
00562     bool
00563     IT_AFC_API operator==(
00564         const IT_Bus::Reference & lhs,
00565         const IT_Bus::Reference & rhs
00566     );
00567     
00568     bool
00569     IT_AFC_API operator!=(
00570         const IT_Bus::Reference & lhs,
00571         const IT_Bus::Reference & rhs
00572     );
00573 
00574     bool
00575     IT_AFC_API operator==(
00576         const WS_Addressing::EndpointReferenceType & lhs,
00577         const WS_Addressing::EndpointReferenceType & rhs
00578     );
00579 }
00580 #endif
00581 

Generated on Wed Mar 22 12:23:04 2006 for Artix by  doxygen 1.3.9.1