/scratch/rpmbuild.16050.r16097/pegasus/src/Pegasus/Common/OperationContext.h

00001 //%LICENSE////////////////////////////////////////////////////////////////
00002 //
00003 // Licensed to The Open Group (TOG) under one or more contributor license
00004 // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
00005 // this work for additional information regarding copyright ownership.
00006 // Each contributor licenses this file to you under the OpenPegasus Open
00007 // Source License; you may not use this file except in compliance with the
00008 // License.
00009 //
00010 // Permission is hereby granted, free of charge, to any person obtaining a
00011 // copy of this software and associated documentation files (the "Software"),
00012 // to deal in the Software without restriction, including without limitation
00013 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
00014 // and/or sell copies of the Software, and to permit persons to whom the
00015 // Software is furnished to do so, subject to the following conditions:
00016 //
00017 // The above copyright notice and this permission notice shall be included
00018 // in all copies or substantial portions of the Software.
00019 //
00020 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00021 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00022 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
00023 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
00024 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
00025 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
00026 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00027 //
00029 //
00030 //%/////////////////////////////////////////////////////////////////////////////
00031 
00032 #ifndef Pegasus_OperationContext_h
00033 #define Pegasus_OperationContext_h
00034 
00035 #include <Pegasus/Common/Config.h>
00036 #include <Pegasus/Common/Exception.h>
00037 #include <Pegasus/Common/CIMInstance.h>
00038 #include <Pegasus/Common/AcceptLanguageList.h>
00039 #include <Pegasus/Common/ContentLanguageList.h>
00040 #include <Pegasus/Common/Linkage.h>
00041 
00042 PEGASUS_NAMESPACE_BEGIN
00043 
00044 class OperationContextRep;
00045 
00052 class PEGASUS_COMMON_LINKAGE OperationContext
00053 {
00054 public:
00055 
00060     class PEGASUS_COMMON_LINKAGE Container
00061     {
00062     public:
00063 
00067         virtual ~Container();
00068 
00073         virtual String getName() const = 0;
00074 
00080         virtual Container* clone() const = 0;
00081 
00086         virtual void destroy() = 0;
00087     };
00088 
00092     OperationContext();
00093 
00100     OperationContext(const OperationContext& context);
00101 
00105     virtual ~OperationContext();
00106 
00113     OperationContext& operator=(const OperationContext& context);
00114 
00118     void clear();
00119 
00127     const Container& get(const String& containerName) const;
00128 
00135     Boolean contains(const String& containerName) const;
00136 
00144     void set(const Container& container);
00145 
00152     void insert(const Container& container);
00153 
00161     void remove(const String& containerName);
00162 
00163 protected:
00167     OperationContextRep* _rep;
00168 };
00169 
00170 
00171 class IdentityContainerRep;
00172 
00179 class PEGASUS_COMMON_LINKAGE IdentityContainer
00180     : virtual public OperationContext::Container
00181 {
00182 public:
00186     static const String NAME;
00187 
00194     IdentityContainer(const OperationContext::Container& container);
00195 
00200     IdentityContainer(const IdentityContainer& container);
00201 
00206     IdentityContainer(const String& userName);
00207 
00211     virtual ~IdentityContainer();
00212 
00218     IdentityContainer& operator=(const IdentityContainer& container);
00219 
00224     virtual String getName() const;
00225 
00231     virtual OperationContext::Container* clone() const;
00232 
00237     virtual void destroy();
00238 
00243     String getUserName() const;
00244 
00245 protected:
00249     IdentityContainerRep* _rep;
00250 
00251 private:
00252     IdentityContainer();    // Unimplemented
00253 };
00254 
00255 
00256 class SubscriptionInstanceContainerRep;
00257 
00262 class PEGASUS_COMMON_LINKAGE SubscriptionInstanceContainer
00263     : virtual public OperationContext::Container
00264 {
00265 public:
00269     static const String NAME;
00270 
00278     SubscriptionInstanceContainer(
00279         const OperationContext::Container& container);
00280 
00285     SubscriptionInstanceContainer(
00286         const SubscriptionInstanceContainer& container);
00287 
00294     SubscriptionInstanceContainer(const CIMInstance& subscriptionInstance);
00295 
00299     virtual ~SubscriptionInstanceContainer();
00300 
00306     SubscriptionInstanceContainer& operator=(
00307         const SubscriptionInstanceContainer& container);
00308 
00313     virtual String getName() const;
00314 
00321     virtual OperationContext::Container* clone() const;
00322 
00327     virtual void destroy();
00328 
00333     CIMInstance getInstance() const;
00334 
00335 protected:
00340     SubscriptionInstanceContainerRep* _rep;
00341 
00342 private:
00343     SubscriptionInstanceContainer();    // Unimplemented
00344 };
00345 
00346 
00347 class SubscriptionFilterConditionContainerRep;
00348 
00355 class PEGASUS_COMMON_LINKAGE SubscriptionFilterConditionContainer
00356     : virtual public OperationContext::Container
00357 {
00358 public:
00362     static const String NAME;
00363 
00371     SubscriptionFilterConditionContainer(
00372         const OperationContext::Container& container);
00373 
00380     SubscriptionFilterConditionContainer(
00381         const SubscriptionFilterConditionContainer& container);
00382 
00391     SubscriptionFilterConditionContainer(
00392         const String& filterCondition,
00393         const String& queryLanguage);
00394 
00398     virtual ~SubscriptionFilterConditionContainer();
00399 
00406     SubscriptionFilterConditionContainer& operator=(
00407         const SubscriptionFilterConditionContainer& container);
00408 
00413     virtual String getName() const;
00414 
00421     virtual OperationContext::Container* clone() const;
00422 
00427     virtual void destroy();
00428 
00436     String getFilterCondition() const;
00437 
00443     String getQueryLanguage() const;
00444 
00445 protected:
00450     SubscriptionFilterConditionContainerRep* _rep;
00451 
00452 private:
00453     SubscriptionFilterConditionContainer();    // Unimplemented
00454 };
00455 
00456 
00457 class SubscriptionFilterQueryContainerRep;
00458 
00468 class PEGASUS_COMMON_LINKAGE SubscriptionFilterQueryContainer
00469     : virtual public OperationContext::Container
00470 {
00471 public:
00475     static const String NAME;
00476 
00484     SubscriptionFilterQueryContainer(
00485         const OperationContext::Container& container);
00486 
00491     SubscriptionFilterQueryContainer(
00492         const SubscriptionFilterQueryContainer& container);
00493 
00504     SubscriptionFilterQueryContainer(
00505        const String& filterQuery,
00506        const String& queryLanguage,
00507        const CIMNamespaceName& sourceNameSpace);
00508 
00512     virtual ~SubscriptionFilterQueryContainer();
00513 
00519     SubscriptionFilterQueryContainer& operator=(
00520         const SubscriptionFilterQueryContainer& container);
00521 
00526     virtual String getName() const;
00527 
00534     virtual OperationContext::Container* clone() const;
00535 
00540     virtual void destroy();
00541 
00547     String getFilterQuery() const;
00548 
00555     String getQueryLanguage() const;
00556 
00562     CIMNamespaceName getSourceNameSpace() const;
00563 
00564 protected:
00569     SubscriptionFilterQueryContainerRep* _rep;
00570 
00571 private:
00572     SubscriptionFilterQueryContainer();    // Unimplemented
00573 };
00574 
00575 
00576 class SubscriptionInstanceNamesContainerRep;
00577 
00585 class PEGASUS_COMMON_LINKAGE SubscriptionInstanceNamesContainer
00586     : virtual public OperationContext::Container
00587 {
00588 public:
00589 
00593     static const String NAME;
00594 
00602     SubscriptionInstanceNamesContainer(
00603         const OperationContext::Container& container);
00604 
00609     SubscriptionInstanceNamesContainer(
00610         const SubscriptionInstanceNamesContainer& container);
00611 
00618     SubscriptionInstanceNamesContainer(
00619         const Array<CIMObjectPath>& subscriptionInstanceNames);
00620 
00624     virtual ~SubscriptionInstanceNamesContainer();
00625 
00631     SubscriptionInstanceNamesContainer& operator=(
00632         const SubscriptionInstanceNamesContainer& container);
00633 
00638     virtual String getName() const;
00639 
00646     virtual OperationContext::Container* clone() const;
00647 
00652     virtual void destroy();
00653 
00660     Array<CIMObjectPath> getInstanceNames() const;
00661 
00662 protected:
00667     SubscriptionInstanceNamesContainerRep* _rep;
00668 
00669 private:
00670     SubscriptionInstanceNamesContainer();    // Unimplemented
00671 };
00672 
00673 
00678 class PEGASUS_COMMON_LINKAGE TimeoutContainer
00679     : virtual public OperationContext::Container
00680 {
00681 public:
00682 
00686     static const String NAME;
00687 
00694     TimeoutContainer(const OperationContext::Container& container);
00695 
00700     TimeoutContainer(Uint32 timeout);
00701 
00706     virtual String getName() const;
00707 
00713     virtual OperationContext::Container* clone() const;
00714 
00719     virtual void destroy();
00720 
00725     Uint32 getTimeOut() const;
00726 
00727 protected:
00731     Uint32 _value;
00732 
00733 private:
00734     TimeoutContainer();
00735 };
00736 
00737 
00738 class AcceptLanguageListContainerRep;
00739 
00744 class PEGASUS_COMMON_LINKAGE AcceptLanguageListContainer
00745     : virtual public OperationContext::Container
00746 {
00747 public:
00751     static const String NAME;
00752 
00760     AcceptLanguageListContainer(
00761         const OperationContext::Container& container);
00762 
00767     AcceptLanguageListContainer(
00768         const AcceptLanguageListContainer& container);
00769 
00776     AcceptLanguageListContainer(const AcceptLanguageList& languages);
00777 
00781     virtual ~AcceptLanguageListContainer();
00782 
00788     AcceptLanguageListContainer& operator=(
00789         const AcceptLanguageListContainer& container);
00790 
00795     virtual String getName() const;
00796 
00802     virtual OperationContext::Container* clone() const;
00803 
00808     virtual void destroy();
00809 
00816     AcceptLanguageList getLanguages() const;
00817 
00818 protected:
00823     AcceptLanguageListContainerRep* _rep;
00824 
00825 private:
00826     AcceptLanguageListContainer();    // Unimplemented
00827 };
00828 
00829 
00830 class ContentLanguageListContainerRep;
00831 
00836 class PEGASUS_COMMON_LINKAGE ContentLanguageListContainer
00837     : virtual public OperationContext::Container
00838 {
00839 public:
00840 
00844     static const String NAME;
00845 
00853     ContentLanguageListContainer(
00854         const OperationContext::Container& container);
00855 
00860     ContentLanguageListContainer(
00861         const ContentLanguageListContainer& container);
00862 
00869     ContentLanguageListContainer(const ContentLanguageList& languages);
00870 
00874     virtual ~ContentLanguageListContainer();
00875 
00881     ContentLanguageListContainer& operator=(
00882         const ContentLanguageListContainer& container);
00883 
00888     virtual String getName() const;
00889 
00895     virtual OperationContext::Container* clone() const;
00896 
00901     virtual void destroy();
00902 
00909     ContentLanguageList getLanguages() const;
00910 
00911 protected:
00916     ContentLanguageListContainerRep* _rep;
00917 
00918 private:
00919     ContentLanguageListContainer();    // Unimplemented
00920 };
00921 
00922 
00923 class SnmpTrapOidContainerRep;
00924 
00929 class PEGASUS_COMMON_LINKAGE SnmpTrapOidContainer
00930     : virtual public OperationContext::Container
00931 {
00932 public:
00933 
00937     static const String NAME;
00938 
00945     SnmpTrapOidContainer(const OperationContext::Container& container);
00946 
00951     SnmpTrapOidContainer(const SnmpTrapOidContainer& container);
00952 
00957     SnmpTrapOidContainer(const String& snmpTrapOid);
00958 
00962     virtual ~SnmpTrapOidContainer();
00963 
00969     SnmpTrapOidContainer& operator=(const SnmpTrapOidContainer& container);
00970 
00975     virtual String getName() const;
00976 
00982     virtual OperationContext::Container* clone() const;
00983 
00988     virtual void destroy();
00989 
00995     String getSnmpTrapOid() const;
00996 
00997 protected:
01001     SnmpTrapOidContainerRep* _rep;
01002 
01003 private:
01004     SnmpTrapOidContainer();    // Unimplemented
01005 };
01006 
01007 
01008 PEGASUS_NAMESPACE_END
01009 
01010 #endif