1 karl 1.6 //%2004////////////////////////////////////////////////////////////////////////
|
2 tony 1.1 //
|
3 karl 1.6 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 karl 1.3 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.6 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 tony 1.1 //
10 // Permission is hereby granted, free of charge, to any person obtaining a copy
11 // of this software and associated documentation files (the "Software"), to
12 // deal in the Software without restriction, including without limitation the
13 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
14 // sell copies of the Software, and to permit persons to whom the Software is
15 // furnished to do so, subject to the following conditions:
16 //
17 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
18 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
19 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
20 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
21 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
23 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 //
26 //==============================================================================
27 //
28 // Author: Tony Fiorentino (fiorentino_tony@emc.com)
29 //
30 tony 1.1 // Modified By:
31 //
32 //%/////////////////////////////////////////////////////////////////////////////
33 #ifndef Pegasus_CIMServerDiscovery_h
34 #define Pegasus_CIMServerDiscovery_h
35
36 #include <Pegasus/Common/Config.h>
37 #include <Pegasus/Common/Array.h>
38 #include <Pegasus/Common/String.h>
|
39 david.dillard 1.5 #include <Pegasus/Common/Attribute.h>
40 #include <Pegasus/Common/CIMServerDescription.h>
|
41 tony 1.1 #include <Pegasus/Client/Linkage.h>
42
43 PEGASUS_NAMESPACE_BEGIN
44
|
45 karl 1.4 //*****************************************************************************
46 // SLPClientOptions
47 //*****************************************************************************
48
49 /** Purpose: allow some flexibility in the nature of the SLP
50 srv requests, particularly to permit unicast da requests,
51 passing of scopes and spi parameters etc.
52 */
53
54 struct PEGASUS_CLIENT_LINKAGE SLPClientOptions{
55 char* target_address;
56 char* local_interface;
57 unsigned short target_port;
58 char* spi;
59 char* scopes;
60 char* service_type;
61 char* predicate;
62 bool use_directory_agent;
63 /**
64 * Constructs an empty object. User must strdup the
65 * string values during initialistation,
66 karl 1.4 * which are then freed automatically during
67 * destruction
68 * */
69 SLPClientOptions();
70 /**
71 * Destroys object and contained string values
72 * */
73 ~SLPClientOptions();
74 /**
75 * For debugging
76 * */
77 void print() const;
78 private:
79 SLPClientOptions(const SLPClientOptions& options);
80 SLPClientOptions& operator=(const SLPClientOptions& options);
81 };
82
|
83 tony 1.1
|
84 karl 1.2 //*****************************************************************************
|
85 tony 1.1 // CIMServerDiscoveryRep
|
86 karl 1.2 //*****************************************************************************
87
88
|
89 tony 1.1 class CIMServerDiscoveryRep
90 {
91 public:
92
93 CIMServerDiscoveryRep();
94 ~CIMServerDiscoveryRep();
95
|
96 karl 1.4 Array<CIMServerDescription> lookup(const Array<Attribute> & criteria,const SLPClientOptions* options = NULL);
|
97 tony 1.1
98 };
99
100 /** This class provides the interface that a client uses to discover
|
101 karl 1.2 CIM Servers.
102 ATTN: Add more descriptive material here KS 2 Oct 2003
|
103 tony 1.1 */
104 class PEGASUS_CLIENT_LINKAGE CIMServerDiscovery
105 {
106 public:
107
108 /** Constructor for a CIMServerDiscovery object.
109 */
110 CIMServerDiscovery();
111
112 /** Destructor for a CIMServerDiscovery object
113 */
114 ~CIMServerDiscovery();
115
116 /** Lookup all WBEM servers
117 @return the return value is an array of connection descriptions.
118 */
|
119 karl 1.4 Array<CIMServerDescription> lookup(const SLPClientOptions* options = NULL);
|
120 tony 1.1
121 /** Lookup specific WBEM servers
122 @param criteria Criteria for specifing which CIM Servers to lookup.
123 @return the return value is array of connection descriptions.
124 */
|
125 karl 1.4 Array<CIMServerDescription> lookup(const Array<Attribute> & criteria,const SLPClientOptions* options = NULL);
|
126 tony 1.1
127 private:
128
129 CIMServerDiscoveryRep* _rep;
130 };
131
132 PEGASUS_NAMESPACE_END
133
134 #endif /* Pegasus_CIMServerDiscovery_h */
|