in source/code/providers/SCX_FileSystem_Class_Provider.cpp [33:147]
static void EnumerateOneInstance(
Context& context,
SCX_FileSystem_Class& inst,
bool keysOnly,
SCXHandle<SCXSystemLib::StaticLogicalDiskInstance> diskinst)
{
SCXCoreLib::NameResolver nr;
std::wstring hostname = nr.GetHostDomainname();
diskinst->Update();
std::wstring name;
if (diskinst->GetDeviceName(name))
{
inst.Name_value(StrToMultibyte(name).c_str());
}
inst.CreationClassName_value("SCX_FileSystem");
inst.CSCreationClassName_value("SCX_ComputerSystem");
inst.CSName_value(StrToMultibyte(hostname).c_str());
if (!keysOnly)
{
inst.Caption_value("File system information");
inst.Description_value("Information about a logical unit of secondary storage");
scxulong data;
std::wstring sdata;
bool bdata;
if (diskinst->GetHealthState(bdata))
{
inst.IsOnline_value(bdata);
}
if (diskinst->GetMountpoint(sdata))
{
inst.Root_value(StrToMultibyte(sdata).c_str());
}
if (diskinst->GetFileSystemType(sdata))
{
inst.FileSystemType_value(StrToMultibyte(sdata).c_str());
}
if (diskinst->GetSizeInBytes(data))
{
inst.FileSystemSize_value(data);
}
if (diskinst->GetCompressionMethod(sdata))
{
inst.CompressionMethod_value(StrToMultibyte(sdata).c_str());
}
if (diskinst->GetIsReadOnly(bdata))
{
inst.ReadOnly_value(bdata);
}
if (diskinst->GetEncryptionMethod(sdata))
{
inst.EncryptionMethod_value(StrToMultibyte(sdata).c_str());
}
int idata;
if (diskinst->GetPersistenceType(idata))
{
inst.PersistenceType_value(static_cast<unsigned short>(idata));
}
if (diskinst->GetBlockSize(data))
{
inst.BlockSize_value(data);
}
if (diskinst->GetAvailableSpaceInBytes(data))
{
inst.AvailableSpace_value(data);
}
scxulong inodesTotal, inodesFree;
if (diskinst->GetTotalInodes(inodesTotal) && diskinst->GetAvailableInodes(inodesFree))
{
inst.TotalInodes_value(inodesTotal);
inst.FreeInodes_value(inodesFree);
inst.NumberOfFiles_value(inodesTotal - inodesFree);
}
if (diskinst->GetIsCaseSensitive(bdata))
{
inst.CaseSensitive_value(bdata);
}
if (diskinst->GetIsCasePreserved(bdata))
{
inst.CasePreserved_value(bdata);
}
/*
if (diskinst->GetCodeSet(idata))
{
Uint16A tmp;
tmp[0] = (Uint16)idata;
inst.CodeSet_value(tmp);
}
*/
if (diskinst->GetMaxFilenameLen(data))
{
inst.MaxFileNameLength_value(static_cast<unsigned int>(data));
}
}
context.Post(inst);
}