version 1.71, 2008/10/01 04:46:16
|
version 1.72, 2008/11/12 17:22:32
|
|
|
#include "ArrayInternal.h" | #include "ArrayInternal.h" |
#include "HostLocator.h" | #include "HostLocator.h" |
#include "System.h" | #include "System.h" |
|
#include "CIMKeyBindingRep.h" |
|
#include "CIMObjectPathRep.h" |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
|
// | // |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
| |
class CIMKeyBindingRep |
|
{ |
|
public: |
|
CIMKeyBindingRep() |
|
{ |
|
} |
|
|
|
CIMKeyBindingRep(const CIMKeyBindingRep& x) |
|
: _name(x._name), _value(x._value), _type(x._type) |
|
{ |
|
} |
|
|
|
CIMKeyBindingRep( |
|
const CIMName& name, |
|
const String& value, |
|
CIMKeyBinding::Type type) |
|
: _name(name), _value(value), _type(type) |
|
{ |
|
} |
|
|
|
~CIMKeyBindingRep() |
|
{ |
|
} |
|
|
|
CIMKeyBindingRep& operator=(const CIMKeyBindingRep& x) |
|
{ |
|
if (&x != this) |
|
{ |
|
_name = x._name; |
|
_value = x._value; |
|
_type = x._type; |
|
} |
|
return *this; |
|
} |
|
|
|
CIMName _name; |
|
String _value; |
|
CIMKeyBinding::Type _type; |
|
}; |
|
|
|
|
|
CIMKeyBinding::CIMKeyBinding() | CIMKeyBinding::CIMKeyBinding() |
{ | { |
_rep = new CIMKeyBindingRep(); | _rep = new CIMKeyBindingRep(); |
|
|
// | // |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
| |
class CIMObjectPathRep |
|
{ |
|
public: |
|
CIMObjectPathRep(): _refCounter(1) |
|
{ |
|
} |
|
|
|
CIMObjectPathRep(const CIMObjectPathRep& x) |
|
: _refCounter(1), _host(x._host), _nameSpace(x._nameSpace), |
|
_className(x._className), _keyBindings(x._keyBindings) |
|
{ |
|
} |
|
|
|
CIMObjectPathRep( |
|
const String& host, |
|
const CIMNamespaceName& nameSpace, |
|
const CIMName& className, |
|
const Array<CIMKeyBinding>& keyBindings) |
|
: _refCounter(1), _host(host), _nameSpace(nameSpace), |
|
_className(className), _keyBindings(keyBindings) |
|
{ |
|
} |
|
|
|
~CIMObjectPathRep() |
|
{ |
|
} |
|
|
|
CIMObjectPathRep& operator=(const CIMObjectPathRep& x) |
|
{ |
|
if (&x != this) |
|
{ |
|
_host = x._host; |
|
_nameSpace = x._nameSpace; |
|
_className = x._className; |
|
_keyBindings = x._keyBindings; |
|
} |
|
return *this; |
|
} |
|
|
|
static Boolean isValidHostname(const String& hostname) |
|
{ |
|
HostLocator addr(hostname); |
|
|
|
return addr.isValid(); |
|
} |
|
|
|
// reference counter as member to avoid |
|
// virtual function resolution overhead |
|
AtomicInt _refCounter; |
|
// |
|
// Contains port as well (e.g., myhost:1234). |
|
// |
|
String _host; |
|
|
|
CIMNamespaceName _nameSpace; |
|
CIMName _className; |
|
Array<CIMKeyBinding> _keyBindings; |
|
}; |
|
|
|
template<class REP> | template<class REP> |
inline void Ref(REP* rep) | inline void Ref(REP* rep) |
{ | { |