| 17 | #include "DeviceObjectType.h" |
| 18 | |
| 19 | std::unique_ptr<ObjectType> ObjectTypeFactory::CreateObjectType(int typeIndex, const CString& name) { |
| 20 | static WinSys::ProcessManager procMgr; |
| 21 | |
| 22 | procMgr.EnumProcesses(); |
| 23 | if (name == L"Mutant") |
| 24 | return std::make_unique<MutexObjectType>(typeIndex, name); |
| 25 | if (name == L"Process") |
| 26 | return std::make_unique<ProcessObjectType>(procMgr, typeIndex, name); |
| 27 | if (name == L"Thread") |
| 28 | return std::make_unique<ThreadObjectType>(procMgr, typeIndex, name); |
| 29 | if (name == L"Semaphore") |
| 30 | return std::make_unique<SemaphoreObjectType>(typeIndex, name); |
| 31 | if (name == L"Section") |
| 32 | return std::make_unique<SectionObjectType>(typeIndex, name); |
| 33 | if (name == L"Event") |
| 34 | return std::make_unique<EventObjectType>(typeIndex, name); |
| 35 | if (name == L"SymbolicLink") |
| 36 | return std::make_unique<SymbolicLinkObjectType>(typeIndex, name); |
| 37 | if (name == L"Key") |
| 38 | return std::make_unique<KeyObjectType>(typeIndex, name); |
| 39 | if (name == L"Job") |
| 40 | return std::make_unique<JobObjectType>(typeIndex, name); |
| 41 | if (name == L"Token") |
| 42 | return std::make_unique<TokenObjectType>(typeIndex, name); |
| 43 | if (name == L"File") |
| 44 | return std::make_unique<FileObjectType>(typeIndex, name); |
| 45 | if (name == L"Timer") |
| 46 | return std::make_unique<TimerObjectType>(typeIndex, name); |
| 47 | if (name == L"WindowStation") |
| 48 | return std::make_unique<WinStationObjectType>(typeIndex, name); |
| 49 | if (name == L"TpWorkerFactory") |
| 50 | return std::make_unique<WorkerFactoryObjectType>(procMgr, typeIndex, name); |
| 51 | if(name == L"Device") |
| 52 | return std::make_unique<DeviceObjectType>(typeIndex, name); |
| 53 | return nullptr; |
| 54 | } |
nothing calls this directly
no test coverage detected