00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
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();
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();
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();
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();
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();
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();
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();
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();
01005 };
01006
01007
01008 PEGASUS_NAMESPACE_END
01009
01010 #endif