void LinuxNetworkAdapterProvider::enumerateInstanceNames( const OperationContext& context, const CIMObjectPath& ref, ObjectPathResponseHandler& handler ) { int i; vector<String> adapter_names; NetworkAdapterData *iface; CIMName className; enum network_provider_types classType; className = ref.getClassName(); if (className.equal("Linux_EthernetAdapter")) { classType = NETWORK_ADAPTER_PROVIDER_ETHERNET; } else if (className.equal("Linux_NetworkAdapter")) { classType = NETWORK_ADAPTER_PROVIDER_OTHER; } else { throw CIMNotSupportedException(className.getString() + "::enumerateInstanceNames"); } adapter_names = NetworkAdapterData::list_all_adapters(); handler.processing(); for (i = 0; i < (int) adapter_names.size(); i++) { iface = LocateInterface(adapter_names[i]); if (iface != NULL && interface_is_my_type(classType, iface)) handler.deliver(fill_reference(ref.getNameSpace(), className, iface)); delete iface; } handler.complete(); }
void LinuxDiskDriveProvider::enumerateInstanceNames( const OperationContext& context, const CIMObjectPath& ref, ObjectPathResponseHandler& handler ) { DiskDriveData diskdriveData; MediaAccessDeviceInformation *curDiskDrive; handler.processing(); curDiskDrive = diskdriveData.GetFirstDiskDrive(); while (curDiskDrive) { handler.deliver(fill_reference(ref.getNameSpace(), DISKDRIVECLASSNAME, curDiskDrive)); delete curDiskDrive; curDiskDrive = diskdriveData.GetNextDiskDrive(); } diskdriveData.EndGetDiskDrive(); handler.complete(); }