commit a5f57887f8910d43479d1e1b9839634ca4e6f740 Author: Michael Calmer <mc@suse.de> Date: Tue Jan 27 15:40:44 2009 +0100 Implement filter for association functions * Add filter parameter to assoc_* functions * Implement SUSE_AssocFilter as base class for filter objects * Implement SUSE_InstalledSoftwareIdetityFilter * Implement SUSE_HostedCollectionFilter --- src/CMakeLists.txt | 1 + src/SUSE_AssocFilter.h | 29 +++++++ src/SUSE_Common.cc | 53 +++++++++----- src/SUSE_Common.h | 12 ++- src/SUSE_HostedCollectionProvider.cc | 100 +++++++++++++++++++++++-- src/SUSE_HostedCollectionProvider.h | 16 ++++ src/SUSE_InstalledSoftwareIdentityProvider.cc | 83 +++++++++++++++++++- src/SUSE_InstalledSoftwareIdentityProvider.h | 15 ++++ 8 files changed, 278 insertions(+), 31 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2f342c8..7d95d11 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -23,6 +23,7 @@ SET( CMPIZYPP_HEADERS SUSE_SystemSpecificCollectionProvider.h SUSE_MemberOfCollectionProvider.h SUSE_HostedCollectionProvider.h + SUSE_AssocFilter.h ) ADD_LIBRARY(cmpi-zypp SHARED ${CMPIZYPP_SRCS}) diff --git a/src/SUSE_AssocFilter.h b/src/SUSE_AssocFilter.h new file mode 100644 index 0000000..fcc6ad2 --- /dev/null +++ b/src/SUSE_AssocFilter.h @@ -0,0 +1,29 @@ +#ifndef SUSE_ASSOCFILTER_H +#define SUSE_ASSOCFILTER_H + +#include "SUSE_zypp.h" + +namespace cmpizypp +{ + class SUSE_AssocFilter + { + public: + SUSE_AssocFilter() {}; + virtual ~SUSE_AssocFilter() {}; + + virtual bool filterInstance(const CmpiInstance &ci, bool associators) const + { + _CMPIZYPP_TRACE(1,("--- AssocFilter::filterInstance() called")); + return true; + }; + + virtual bool filterObjectPath(const CmpiObjectPath &op, bool associators) const + { + _CMPIZYPP_TRACE(1,("--- AssocFilter::filterObjectPath() called")); + return true; + } + }; + +} // namespace cmpizypp + +#endif // SUSE_ASSOCFILTER_H \ No newline at end of file diff --git a/src/SUSE_Common.cc b/src/SUSE_Common.cc index ff24827..647a211 100644 --- a/src/SUSE_Common.cc +++ b/src/SUSE_Common.cc @@ -1,12 +1,12 @@ #include <cmpi/CmpiObjectPath.h> +#include <cmpi/CmpiResult.h> #include <cmpiutil/base.h> -#include <zypp/base/LogTools.h> + #include <zypp/base/String.h> +#include <zypp/base/LogTools.h> #include <zypp/base/PtrTypes.h> -#include <cmpi/CmpiResult.h> - #include "SUSE_Common.h" #include "SUSE_zypp.h" @@ -19,6 +19,13 @@ std::ostream & operator<<( std::ostream & str, const CmpiObjectPath & obj ) return str; } +std::ostream & operator<<( std::ostream & str, const CmpiInstance & ci ) +{ + CmpiInstance lci( ci ); + str << lci.toString().charPtr(); + return str; +} + namespace cmpizypp { CmpiObjectPath get_this_computersystem(CmpiBroker & broker, const CmpiContext& ctx, const CmpiObjectPath & cop) @@ -147,7 +154,8 @@ namespace cmpizypp const char * _RefSourceClass, const char * _RefTargetClass, int inst, - int associators ) + int associators, + const SUSE_AssocFilter &filter ) { CmpiInstance cis( broker.getInstance( ctx, cop, NULL ) ); // source instance @@ -181,7 +189,8 @@ namespace cmpizypp while (en.hasNext() ) { CmpiInstance ci = en.getNext(); - rslt.returnData( ci ); + if( filter.filterInstance(ci, true) ) + rslt.returnData( ci ); } } else @@ -213,12 +222,14 @@ namespace cmpizypp /* associators = 0 && inst = 0 */ CmpiObjectPath tmp = ci.getObjectPath(); tmp.setNameSpace(cop.getNameSpace()); - rslt.returnData(tmp); + if( filter.filterObjectPath(tmp, false) ) + rslt.returnData(tmp); } else { /* associators = 0 && inst = 1 */ - rslt.returnData(ci); + if( filter.filterInstance(ci, false) ) + rslt.returnData(ci); } } else if(inst == 0) @@ -227,7 +238,8 @@ namespace cmpizypp //rslt.returnData(data); CmpiObjectPath tmp = (CmpiObjectPath)data; tmp.setNameSpace(cop.getNameSpace()); - rslt.returnData(tmp); + if( filter.filterObjectPath(tmp, true) ) + rslt.returnData(tmp); } } } @@ -244,12 +256,13 @@ namespace cmpizypp const char * _RefSourceClass, const char * _RefTargetClass, int inst, - int associators ) + int associators, + const SUSE_AssocFilter &filter ) { _CMPIZYPP_TRACE(1,("--- assoc_create_refs_1toN_ST called")); if ( _assoc_create_refs_1toN_ST( broker, ctx, rslt, cop, _ClassName, _RefSource, _RefTarget, _RefSourceClass, _RefTargetClass, - inst, associators ) ) + inst, associators, filter ) ) { _CMPIZYPP_TRACE(1,("--- assoc_create_refs_1toN_ST exited")); return true; @@ -285,7 +298,8 @@ namespace cmpizypp const char * _RefLeftClass, const char * _RefRightClass, int inst, - int associators ) + int associators, + const SUSE_AssocFilter &filter ) { _CMPIZYPP_TRACE(1,("--- assoc_create_refs_1toN called")); bool result = false; @@ -293,13 +307,13 @@ namespace cmpizypp { result = _assoc_create_refs_1toN_ST(broker, ctx, rslt, cop, _ClassName, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, - inst, associators); + inst, associators, filter); } else { result = _assoc_create_refs_1toN_ST(broker, ctx, rslt, cop, _ClassName, _RefRight, _RefLeft, _RefRightClass, _RefLeftClass, - inst, associators); + inst, associators, filter); } if ( result ) @@ -406,7 +420,8 @@ namespace cmpizypp const char * _RefLeftClass, const char * _RefRightClass, int left, - int inst) + int inst, + const SUSE_AssocFilter &filter ) { _CMPIZYPP_TRACE(1,("--- _assoc_create_inst_1toN called")); bool ret = false; @@ -445,7 +460,7 @@ namespace cmpizypp CmpiData data = en.getNext(); ret = assoc_create_refs_1toN( broker, ctx, rslt, data, _ClassName,_RefLeft,_RefRight, - _RefLeftClass,_RefRightClass,inst,0); + _RefLeftClass,_RefRightClass,inst,0, filter); } _CMPIZYPP_TRACE(1,("--- _assoc_create_inst_1toN exited")); return ret; @@ -461,11 +476,12 @@ namespace cmpizypp const char * _RefLeftClass, const char * _RefRightClass, int left, - int inst) + int inst, + const SUSE_AssocFilter &filter) { _CMPIZYPP_TRACE(1,("--- _assoc_create_inst_1toN called")); if ( _assoc_create_inst_1toN(broker, ctx, rslt, cop, - _ClassName, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, left, inst) ) + _ClassName, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, left, inst, filter) ) { _CMPIZYPP_TRACE(1,("--- _assoc_create_inst_1toN exited: successful")); return true; @@ -534,4 +550,5 @@ namespace cmpizypp _CMPIZYPP_TRACE(1,("--- assoc_get_inst exited")); return ci; } -} + +} // end namespace cmpizypp diff --git a/src/SUSE_Common.h b/src/SUSE_Common.h index 73b5ea7..3a0bd97 100644 --- a/src/SUSE_Common.h +++ b/src/SUSE_Common.h @@ -2,11 +2,13 @@ #define SUSE_COMMON_H #include <iosfwd> +#include "SUSE_AssocFilter.h" using std::endl; class CmpiObjectPath; std::ostream & operator<<( std::ostream & str, const CmpiObjectPath & obj ); +std::ostream & operator<<( std::ostream & str, const CmpiInstance & ci ); namespace cmpizypp { @@ -25,7 +27,8 @@ namespace cmpizypp const char * _RefSourceClass, const char * _RefTargetClass, int inst, - int associators ); + int associators, + const SUSE_AssocFilter &filter = SUSE_AssocFilter() ); /** Method to create CMPIInstance(s) / CMPIObjectPath(s) of association. * @@ -48,7 +51,8 @@ namespace cmpizypp const char * _RefLeftClass, const char * _RefRightClass, int inst, - int associators ); + int associators, + const SUSE_AssocFilter &filter = SUSE_AssocFilter() ); /** Method to check the input parameter resultClass, role and resultRole @@ -75,7 +79,8 @@ namespace cmpizypp const char * _RefLeftClass, const char * _RefRightClass, int left, - int inst); + int inst, + const SUSE_AssocFilter &filter = SUSE_AssocFilter() ); CmpiInstance assoc_get_inst( CmpiBroker & broker, const CmpiContext & ctx, @@ -83,5 +88,6 @@ namespace cmpizypp const char * _ClassName, const char * _RefLeft, const char * _RefRight); + } #endif // SUSE_COMMON_H \ No newline at end of file diff --git a/src/SUSE_HostedCollectionProvider.cc b/src/SUSE_HostedCollectionProvider.cc index 9a65c7f..670394a 100644 --- a/src/SUSE_HostedCollectionProvider.cc +++ b/src/SUSE_HostedCollectionProvider.cc @@ -50,7 +50,7 @@ namespace cmpizypp CmpiStatus st( CMPI_RC_ERR_FAILED, "EnumInstanceNames failed." ); return st; } - + rslt.returnDone(); _CMPIZYPP_TRACE(1,("--- %s CMPI EnumInstanceNames() exited",_ClassName)); return CmpiStatus(CMPI_RC_OK); @@ -69,7 +69,7 @@ namespace cmpizypp CmpiStatus st( CMPI_RC_ERR_FAILED, "EnumInstances failed." ); return st; } - + rslt.returnDone(); _CMPIZYPP_TRACE(1,("--- %s CMPI EnumInstances() exited",_ClassName)); return CmpiStatus(CMPI_RC_OK); @@ -103,8 +103,9 @@ namespace cmpizypp if ( assoc_check_parameter_const( cop, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, resultClass, role, resultRole ) ) { + SUSE_HostedCollectionFilter filter(get_this_computersystem(*broker, ctx, cop)); if(! assoc_create_refs_1toN( *broker, ctx, rslt, cop, _ClassName, - _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 1) ) + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 1, filter ) ) { CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); @@ -131,8 +132,9 @@ namespace cmpizypp if ( assoc_check_parameter_const( cop, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, resultClass, role, resultRole ) ) { + SUSE_HostedCollectionFilter filter(get_this_computersystem(*broker, ctx, cop)); if(! assoc_create_refs_1toN( *broker, ctx, rslt, cop, _ClassName, - _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 1) ) + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 1, filter ) ) { CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); @@ -159,8 +161,9 @@ namespace cmpizypp if ( assoc_check_parameter_const( cop, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, NULL/*resultClass*/, role, NULL /*resultRole*/ ) ) { + SUSE_HostedCollectionFilter filter(get_this_computersystem(*broker, ctx, cop)); if(! assoc_create_refs_1toN( *broker, ctx, rslt, cop, _ClassName, - _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 0) ) + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 0, filter ) ) { CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); @@ -186,8 +189,9 @@ namespace cmpizypp if ( assoc_check_parameter_const( cop, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, NULL/*resultClass*/, role, NULL /*resultRole*/ ) ) { + SUSE_HostedCollectionFilter filter(get_this_computersystem(*broker, ctx, cop)); if(! assoc_create_refs_1toN( *broker, ctx, rslt, cop, _ClassName, - _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 0) ) + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 0, filter ) ) { CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); @@ -201,6 +205,90 @@ namespace cmpizypp return CmpiStatus(CMPI_RC_OK); } +/* -------------------------------------------------------------------------- */ + + SUSE_HostedCollectionFilter::SUSE_HostedCollectionFilter(const CmpiObjectPath &op) + : SUSE_AssocFilter() + , csop(op) + { } + + bool SUSE_HostedCollectionFilter::filterInstance(const CmpiInstance &ci, bool associators) const + { + _CMPIZYPP_TRACE(1,("--- SUSE_HostedCollectionFilter::filterInstance called")); + USR << ci << endl; + CmpiString CSName = csop.getKey("CreationClassName"); + CmpiString Name = csop.getKey("Name"); + + const char *filterCSName = ""; + const char *filterName = ""; + if( ! associators ) + { + CmpiObjectPath filterop = ci.getProperty( _RefLeft ); + filterCSName = filterop.getKey("CreationClassName"); + filterName = filterop.getKey("Name"); + } + else + { + CmpiInstance lci( ci ); + if( lci.instanceIsA( _RefLeftClass ) ) + { + _CMPIZYPP_TRACE(1,("--- SUSE_HostedCollectionFilter::filterInstance exited: true")); + return true; + } + + filterCSName = ci.getProperty("CreationClassName"); + filterName = ci.getProperty("Name"); + } + + if(CSName.equals(filterCSName) && Name.equals(filterName) ) + { + _CMPIZYPP_TRACE(1,("--- SUSE_HostedCollectionFilter::filterInstance exited: true")); + return true; + } + else + { + _CMPIZYPP_TRACE(1,("--- SUSE_HostedCollectionFilter::filterInstance exited: false")); + return false; + } + } + + bool SUSE_HostedCollectionFilter::filterObjectPath(const CmpiObjectPath &op, bool associators) const + { + _CMPIZYPP_TRACE(1,("--- SUSE_HostedCollectionFilter::filterObjectPath called")); + USR << op << endl; + CmpiString CSName = csop.getKey("CreationClassName"); + CmpiString Name = csop.getKey("Name"); + + CmpiObjectPath filterop("", ""); + if( ! associators ) + { + filterop = op.getKey( _RefLeft ); + } + else + { + if( op.classPathIsA( _RefLeftClass ) ) + { + _CMPIZYPP_TRACE(1,("--- SUSE_HostedCollectionFilter::filterObjectPath exited: true")); + return true; + } + + filterop = op; + } + CmpiString filterCSName = filterop.getKey("CreationClassName"); + CmpiString filterName = filterop.getKey("Name"); + + if(filterCSName.equals(CSName) && filterName.equals(Name) ) + { + _CMPIZYPP_TRACE(1,("--- SUSE_HostedCollectionFilter::filterObjectPath exited: true")); + return true; + } + else + { + _CMPIZYPP_TRACE(1,("--- SUSE_HostedCollectionFilter::filterObjectPath exited: false")); + return false; + } + } + } // namespace cmpizypp CMProviderBase( SUSE_HostedCollectionProvider ); diff --git a/src/SUSE_HostedCollectionProvider.h b/src/SUSE_HostedCollectionProvider.h index 6d9892f..9b8b7cb 100644 --- a/src/SUSE_HostedCollectionProvider.h +++ b/src/SUSE_HostedCollectionProvider.h @@ -4,6 +4,8 @@ #include <cmpi/CmpiInstanceMI.h> #include <cmpi/CmpiAssociationMI.h> +#include "SUSE_AssocFilter.h" + namespace cmpizypp { /** @@ -37,6 +39,20 @@ namespace cmpizypp const CmpiObjectPath& cop, const char* resultClass, const char* role); }; + + class SUSE_HostedCollectionFilter: public SUSE_AssocFilter + { + private: + CmpiObjectPath csop; + + public: + SUSE_HostedCollectionFilter(const CmpiObjectPath &op); + virtual ~SUSE_HostedCollectionFilter() {}; + + virtual bool filterInstance(const CmpiInstance &ci, bool associators) const; + virtual bool filterObjectPath(const CmpiObjectPath &op, bool associators) const; + }; + } // namespace cmpizypp #endif // SUSE_HOSTEDCOLLECTIONPROVIDERCLASS_H diff --git a/src/SUSE_InstalledSoftwareIdentityProvider.cc b/src/SUSE_InstalledSoftwareIdentityProvider.cc index bd2d30c..c90a875 100644 --- a/src/SUSE_InstalledSoftwareIdentityProvider.cc +++ b/src/SUSE_InstalledSoftwareIdentityProvider.cc @@ -157,8 +157,9 @@ namespace cmpizypp { if ( cop.classPathIsA(_RefLeftClass) ) //SUSE_SoftwareIdentity { + SUSE_InstalledSoftwareIdentityFilter filter(get_this_computersystem(*broker, ctx, cop)); if(! assoc_create_refs_1toN_ST( *broker, ctx, rslt, cop, _ClassName, - _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 1) ) + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 1, filter ) ) { CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); @@ -222,8 +223,9 @@ namespace cmpizypp { if ( cop.classPathIsA(_RefLeftClass) ) //SUSE_SoftwareIdentity { + SUSE_InstalledSoftwareIdentityFilter filter(get_this_computersystem(*broker, ctx, cop)); if(! assoc_create_refs_1toN_ST( *broker, ctx, rslt, cop, _ClassName, - _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 1) ) + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 1, filter) ) { CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); @@ -293,8 +295,9 @@ namespace cmpizypp { if ( cop.classPathIsA(_RefLeftClass) ) //SUSE_SoftwareIdentity { + SUSE_InstalledSoftwareIdentityFilter filter(get_this_computersystem(*broker, ctx, cop)); if(! assoc_create_refs_1toN_ST( *broker, ctx, rslt, cop, _ClassName, - _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 0) ) + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 0, filter ) ) { CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); @@ -368,8 +371,9 @@ namespace cmpizypp { if ( cop.classPathIsA(_RefLeftClass) ) //SUSE_SoftwareIdentity { + SUSE_InstalledSoftwareIdentityFilter filter(get_this_computersystem(*broker, ctx, cop)); if(! assoc_create_refs_1toN_ST( *broker, ctx, rslt, cop, _ClassName, - _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 0) ) + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 0, filter ) ) { CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); @@ -432,6 +436,77 @@ namespace cmpizypp return CmpiStatus(CMPI_RC_OK); } + + SUSE_InstalledSoftwareIdentityFilter::SUSE_InstalledSoftwareIdentityFilter(const CmpiObjectPath &op) + : SUSE_AssocFilter() + , csop(op) + { } + + bool SUSE_InstalledSoftwareIdentityFilter::filterInstance(const CmpiInstance &ci, bool associators) const + { + _CMPIZYPP_TRACE(1,("--- SUSE_InstalledSoftwareIdentityFilter::filterInstance called")); + USR << ci << endl; + CmpiString CSName = csop.getKey("CreationClassName"); + CmpiString Name = csop.getKey("Name"); + + const char *filterCSName = ""; + const char *filterName = ""; + if( ! associators ) + { + CmpiObjectPath filterop = ci.getProperty( _RefRight ); + filterCSName = filterop.getKey("CreationClassName"); + filterName = filterop.getKey("Name"); + } + else + { + filterCSName = ci.getProperty("CreationClassName"); + filterName = ci.getProperty("Name"); + } + + if(CSName.equals(filterCSName) && Name.equals(filterName) ) + { + _CMPIZYPP_TRACE(1,("--- SUSE_InstalledSoftwareIdentityFilter::filterInstance exited: true")); + return true; + } + else + { + _CMPIZYPP_TRACE(1,("--- SUSE_InstalledSoftwareIdentityFilter::filterInstance exited: false")); + return false; + } + } + + bool SUSE_InstalledSoftwareIdentityFilter::filterObjectPath(const CmpiObjectPath &op, bool associators) const + { + _CMPIZYPP_TRACE(1,("--- SUSE_InstalledSoftwareIdentityFilter::filterObjectPath called")); + USR << op << endl; + CmpiString CSName = csop.getKey("CreationClassName"); + CmpiString Name = csop.getKey("Name"); + + CmpiObjectPath filterop("", ""); + if( ! associators ) + { + filterop = op.getKey( _RefRight ); + } + else + { + filterop = op; + } + CmpiString filterCSName = filterop.getKey("CreationClassName"); + CmpiString filterName = filterop.getKey("Name"); + + if(filterCSName.equals(CSName) && filterName.equals(Name) ) + { + _CMPIZYPP_TRACE(1,("--- SUSE_InstalledSoftwareIdentityFilter::filterObjectPath exited: true")); + return true; + } + else + { + _CMPIZYPP_TRACE(1,("--- SUSE_InstalledSoftwareIdentityFilter::filterObjectPath exited: false")); + return false; + } + } + + } // namespace cmpizypp CMProviderBase( SUSE_InstalledSoftwareIdentityProvider ); diff --git a/src/SUSE_InstalledSoftwareIdentityProvider.h b/src/SUSE_InstalledSoftwareIdentityProvider.h index adb7f3d..ceee8e8 100644 --- a/src/SUSE_InstalledSoftwareIdentityProvider.h +++ b/src/SUSE_InstalledSoftwareIdentityProvider.h @@ -4,6 +4,8 @@ #include <cmpi/CmpiInstanceMI.h> #include <cmpi/CmpiAssociationMI.h> +#include "SUSE_AssocFilter.h" + namespace cmpizypp { /** @@ -37,6 +39,19 @@ namespace cmpizypp const CmpiObjectPath& cop, const char* resultClass, const char* role); }; + class SUSE_InstalledSoftwareIdentityFilter: public SUSE_AssocFilter + { + private: + CmpiObjectPath csop; + + public: + SUSE_InstalledSoftwareIdentityFilter(const CmpiObjectPath &op); + virtual ~SUSE_InstalledSoftwareIdentityFilter() {}; + + virtual bool filterInstance(const CmpiInstance &ci, bool associators) const; + virtual bool filterObjectPath(const CmpiObjectPath &op, bool associators) const; + }; + } // namespace cmpizypp #endif // SUSE_INSTALLEDSOFTWAREIDENTITYPROVIDERCLASS_H -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org