OperationContext.h
1 //%LICENSE////////////////////////////////////////////////////////////////
2 //
3 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
16 //
17 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
29 //
30 //%/////////////////////////////////////////////////////////////////////////////
31 
32 #ifndef Pegasus_OperationContext_h
33 #define Pegasus_OperationContext_h
34 
35 #include <Pegasus/Common/Config.h>
36 #include <Pegasus/Common/Exception.h>
37 #include <Pegasus/Common/CIMInstance.h>
38 #include <Pegasus/Common/AcceptLanguageList.h>
39 #include <Pegasus/Common/ContentLanguageList.h>
40 #include <Pegasus/Common/Linkage.h>
41 
42 PEGASUS_NAMESPACE_BEGIN
43 
44 class OperationContextRep;
45 
52 class PEGASUS_COMMON_LINKAGE OperationContext
53 {
54 public:
55 
60  class PEGASUS_COMMON_LINKAGE Container
61  {
62  public:
63 
67  virtual ~Container();
68 
73  virtual String getName() const = 0;
74 
80  virtual Container* clone() const = 0;
81 
86  virtual void destroy() = 0;
87  };
88 
93 
100  OperationContext(const OperationContext& context);
101 
105  virtual ~OperationContext();
106 
113  OperationContext& operator=(const OperationContext& context);
114 
118  void clear();
119 
127  const Container& get(const String& containerName) const;
128 
135  Boolean contains(const String& containerName) const;
136 
144  void set(const Container& container);
145 
152  void insert(const Container& container);
153 
161  void remove(const String& containerName);
162 
163 protected:
167  OperationContextRep* _rep;
168 };
169 
170 
171 class IdentityContainerRep;
172 
179 class PEGASUS_COMMON_LINKAGE IdentityContainer
180  : virtual public OperationContext::Container
181 {
182 public:
186  static const String NAME;
187 
195 
200  IdentityContainer(const IdentityContainer& container);
201 
206  IdentityContainer(const String& userName);
207 
211  virtual ~IdentityContainer();
212 
218  IdentityContainer& operator=(const IdentityContainer& container);
219 
224  virtual String getName() const;
225 
231  virtual OperationContext::Container* clone() const;
232 
237  virtual void destroy();
238 
243  String getUserName() const;
244 
245 protected:
249  IdentityContainerRep* _rep;
250 
251 private:
252  IdentityContainer(); // Unimplemented
253 };
254 
255 
256 class SubscriptionInstanceContainerRep;
257 
262 class PEGASUS_COMMON_LINKAGE SubscriptionInstanceContainer
263  : virtual public OperationContext::Container
264 {
265 public:
269  static const String NAME;
270 
279  const OperationContext::Container& container);
280 
286  const SubscriptionInstanceContainer& container);
287 
294  SubscriptionInstanceContainer(const CIMInstance& subscriptionInstance);
295 
300 
307  const SubscriptionInstanceContainer& container);
308 
313  virtual String getName() const;
314 
321  virtual OperationContext::Container* clone() const;
322 
327  virtual void destroy();
328 
333  CIMInstance getInstance() const;
334 
335 protected:
340  SubscriptionInstanceContainerRep* _rep;
341 
342 private:
343  SubscriptionInstanceContainer(); // Unimplemented
344 };
345 
346 
347 class SubscriptionFilterConditionContainerRep;
348 
355 class PEGASUS_COMMON_LINKAGE SubscriptionFilterConditionContainer
356  : virtual public OperationContext::Container
357 {
358 public:
362  static const String NAME;
363 
372  const OperationContext::Container& container);
373 
381  const SubscriptionFilterConditionContainer& container);
382 
392  const String& filterCondition,
393  const String& queryLanguage);
394 
399 
407  const SubscriptionFilterConditionContainer& container);
408 
413  virtual String getName() const;
414 
421  virtual OperationContext::Container* clone() const;
422 
427  virtual void destroy();
428 
436  String getFilterCondition() const;
437 
443  String getQueryLanguage() const;
444 
445 protected:
450  SubscriptionFilterConditionContainerRep* _rep;
451 
452 private:
453  SubscriptionFilterConditionContainer(); // Unimplemented
454 };
455 
456 
457 class SubscriptionFilterQueryContainerRep;
458 
468 class PEGASUS_COMMON_LINKAGE SubscriptionFilterQueryContainer
469  : virtual public OperationContext::Container
470 {
471 public:
475  static const String NAME;
476 
485  const OperationContext::Container& container);
486 
492  const SubscriptionFilterQueryContainer& container);
493 
505  const String& filterQuery,
506  const String& queryLanguage,
507  const CIMNamespaceName& sourceNameSpace);
508 
513 
520  const SubscriptionFilterQueryContainer& container);
521 
526  virtual String getName() const;
527 
534  virtual OperationContext::Container* clone() const;
535 
540  virtual void destroy();
541 
547  String getFilterQuery() const;
548 
555  String getQueryLanguage() const;
556 
562  CIMNamespaceName getSourceNameSpace() const;
563 
564 protected:
569  SubscriptionFilterQueryContainerRep* _rep;
570 
571 private:
572  SubscriptionFilterQueryContainer(); // Unimplemented
573 };
574 
575 
576 class SubscriptionInstanceNamesContainerRep;
577 
585 class PEGASUS_COMMON_LINKAGE SubscriptionInstanceNamesContainer
586  : virtual public OperationContext::Container
587 {
588 public:
589 
593  static const String NAME;
594 
603  const OperationContext::Container& container);
604 
610  const SubscriptionInstanceNamesContainer& container);
611 
619  const Array<CIMObjectPath>& subscriptionInstanceNames);
620 
625 
632  const SubscriptionInstanceNamesContainer& container);
633 
638  virtual String getName() const;
639 
646  virtual OperationContext::Container* clone() const;
647 
652  virtual void destroy();
653 
660  Array<CIMObjectPath> getInstanceNames() const;
661 
662 protected:
667  SubscriptionInstanceNamesContainerRep* _rep;
668 
669 private:
670  SubscriptionInstanceNamesContainer(); // Unimplemented
671 };
672 
673 
678 class PEGASUS_COMMON_LINKAGE TimeoutContainer
679  : virtual public OperationContext::Container
680 {
681 public:
682 
686  static const String NAME;
687 
695 
700  TimeoutContainer(Uint32 timeout);
701 
706  virtual String getName() const;
707 
713  virtual OperationContext::Container* clone() const;
714 
719  virtual void destroy();
720 
725  Uint32 getTimeOut() const;
726 
727 protected:
731  Uint32 _value;
732 
733 private:
735 };
736 
737 
738 class AcceptLanguageListContainerRep;
739 
744 class PEGASUS_COMMON_LINKAGE AcceptLanguageListContainer
745  : virtual public OperationContext::Container
746 {
747 public:
751  static const String NAME;
752 
761  const OperationContext::Container& container);
762 
768  const AcceptLanguageListContainer& container);
769 
777 
781  virtual ~AcceptLanguageListContainer();
782 
789  const AcceptLanguageListContainer& container);
790 
795  virtual String getName() const;
796 
802  virtual OperationContext::Container* clone() const;
803 
808  virtual void destroy();
809 
816  AcceptLanguageList getLanguages() const;
817 
818 protected:
823  AcceptLanguageListContainerRep* _rep;
824 
825 private:
826  AcceptLanguageListContainer(); // Unimplemented
827 };
828 
829 
830 class ContentLanguageListContainerRep;
831 
836 class PEGASUS_COMMON_LINKAGE ContentLanguageListContainer
837  : virtual public OperationContext::Container
838 {
839 public:
840 
844  static const String NAME;
845 
854  const OperationContext::Container& container);
855 
861  const ContentLanguageListContainer& container);
862 
870 
874  virtual ~ContentLanguageListContainer();
875 
882  const ContentLanguageListContainer& container);
883 
888  virtual String getName() const;
889 
895  virtual OperationContext::Container* clone() const;
896 
901  virtual void destroy();
902 
909  ContentLanguageList getLanguages() const;
910 
911 protected:
916  ContentLanguageListContainerRep* _rep;
917 
918 private:
919  ContentLanguageListContainer(); // Unimplemented
920 };
921 
922 
923 class SnmpTrapOidContainerRep;
924 
929 class PEGASUS_COMMON_LINKAGE SnmpTrapOidContainer
930  : virtual public OperationContext::Container
931 {
932 public:
933 
937  static const String NAME;
938 
946 
951  SnmpTrapOidContainer(const SnmpTrapOidContainer& container);
952 
957  SnmpTrapOidContainer(const String& snmpTrapOid);
958 
962  virtual ~SnmpTrapOidContainer();
963 
970 
975  virtual String getName() const;
976 
982  virtual OperationContext::Container* clone() const;
983 
988  virtual void destroy();
989 
995  String getSnmpTrapOid() const;
996 
997 protected:
1001  SnmpTrapOidContainerRep* _rep;
1002 
1003 private:
1004  SnmpTrapOidContainer(); // Unimplemented
1005 };
1006 
1007 
1008 PEGASUS_NAMESPACE_END
1009 
1010 #endif
Definition: OperationContext.h:678
AcceptLanguageListContainerRep * _rep
Definition: OperationContext.h:823
virtual void destroy()=0
static const String NAME
Definition: OperationContext.h:269
IdentityContainerRep * _rep
Definition: OperationContext.h:249
Definition: OperationContext.h:836
Definition: CIMInstance.h:64
virtual String getName() const =0
OperationContext & operator=(const OperationContext &context)
static const String NAME
Definition: OperationContext.h:593
static const String NAME
Definition: OperationContext.h:186
SubscriptionFilterQueryContainerRep * _rep
Definition: OperationContext.h:569
Definition: String.h:119
static const String NAME
Definition: OperationContext.h:362
static const String NAME
Definition: OperationContext.h:686
SubscriptionInstanceNamesContainerRep * _rep
Definition: OperationContext.h:667
Uint32 _value
Definition: OperationContext.h:731
OperationContextRep * _rep
Definition: OperationContext.h:167
Definition: OperationContext.h:468
SubscriptionFilterConditionContainerRep * _rep
Definition: OperationContext.h:450
Definition: OperationContext.h:179
Definition: OperationContext.h:52
Definition: OperationContext.h:60
static const String NAME
Definition: OperationContext.h:937
Definition: OperationContext.h:585
SnmpTrapOidContainerRep * _rep
Definition: OperationContext.h:1001
Definition: OperationContext.h:262
Definition: ArrayInter.h:44
Definition: CIMName.h:255
ContentLanguageListContainerRep * _rep
Definition: OperationContext.h:916
SubscriptionInstanceContainerRep * _rep
Definition: OperationContext.h:340
Definition: OperationContext.h:355
Definition: OperationContext.h:744
Definition: ContentLanguageList.h:53
static const String NAME
Definition: OperationContext.h:751
Definition: OperationContext.h:929
virtual Container * clone() const =0
static const String NAME
Definition: OperationContext.h:475
static const String NAME
Definition: OperationContext.h:844
Definition: AcceptLanguageList.h:53