/usr/src/startcom/BUILD/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