whisper-large-v3-mlx
/
lib
/python3.11
/site-packages
/mlx
/include
/metal_cpp
/Foundation
/NSProcessInfo.hpp
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
// | |
// Foundation/NSProcessInfo.hpp | |
// | |
// Copyright 2020-2023 Apple Inc. | |
// | |
// Licensed under the Apache License, Version 2.0 (the "License"); | |
// you may not use this file except in compliance with the License. | |
// You may obtain a copy of the License at | |
// | |
// http://www.apache.org/licenses/LICENSE-2.0 | |
// | |
// Unless required by applicable law or agreed to in writing, software | |
// distributed under the License is distributed on an "AS IS" BASIS, | |
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
// See the License for the specific language governing permissions and | |
// limitations under the License. | |
// | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
namespace NS | |
{ | |
_NS_CONST(NotificationName, ProcessInfoThermalStateDidChangeNotification); | |
_NS_CONST(NotificationName, ProcessInfoPowerStateDidChangeNotification); | |
_NS_ENUM(NS::Integer, ProcessInfoThermalState) { | |
ProcessInfoThermalStateNominal = 0, | |
ProcessInfoThermalStateFair = 1, | |
ProcessInfoThermalStateSerious = 2, | |
ProcessInfoThermalStateCritical = 3 | |
}; | |
_NS_OPTIONS(std::uint64_t, ActivityOptions) { | |
ActivityIdleDisplaySleepDisabled = (1ULL << 40), | |
ActivityIdleSystemSleepDisabled = (1ULL << 20), | |
ActivitySuddenTerminationDisabled = (1ULL << 14), | |
ActivityAutomaticTerminationDisabled = (1ULL << 15), | |
ActivityUserInitiated = (0x00FFFFFFULL | ActivityIdleSystemSleepDisabled), | |
ActivityUserInitiatedAllowingIdleSystemSleep = (ActivityUserInitiated & ~ActivityIdleSystemSleepDisabled), | |
ActivityBackground = 0x000000FFULL, | |
ActivityLatencyCritical = 0xFF00000000ULL, | |
}; | |
class ProcessInfo : public Referencing<ProcessInfo> | |
{ | |
public: | |
static ProcessInfo* processInfo(); | |
class Array* arguments() const; | |
class Dictionary* environment() const; | |
class String* hostName() const; | |
class String* processName() const; | |
void setProcessName(const String* pString); | |
int processIdentifier() const; | |
class String* globallyUniqueString() const; | |
class String* userName() const; | |
class String* fullUserName() const; | |
UInteger operatingSystem() const; | |
OperatingSystemVersion operatingSystemVersion() const; | |
class String* operatingSystemVersionString() const; | |
bool isOperatingSystemAtLeastVersion(OperatingSystemVersion version) const; | |
UInteger processorCount() const; | |
UInteger activeProcessorCount() const; | |
unsigned long long physicalMemory() const; | |
TimeInterval systemUptime() const; | |
void disableSuddenTermination(); | |
void enableSuddenTermination(); | |
void disableAutomaticTermination(const class String* pReason); | |
void enableAutomaticTermination(const class String* pReason); | |
bool automaticTerminationSupportEnabled() const; | |
void setAutomaticTerminationSupportEnabled(bool enabled); | |
class Object* beginActivity(ActivityOptions options, const class String* pReason); | |
void endActivity(class Object* pActivity); | |
void performActivity(ActivityOptions options, const class String* pReason, void (^block)(void)); | |
void performActivity(ActivityOptions options, const class String* pReason, const std::function<void()>& func); | |
void performExpiringActivity(const class String* pReason, void (^block)(bool expired)); | |
void performExpiringActivity(const class String* pReason, const std::function<void(bool expired)>& func); | |
ProcessInfoThermalState thermalState() const; | |
bool isLowPowerModeEnabled() const; | |
bool isiOSAppOnMac() const; | |
bool isMacCatalystApp() const; | |
}; | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_PRIVATE_DEF_CONST(NS::NotificationName, ProcessInfoThermalStateDidChangeNotification); | |
_NS_PRIVATE_DEF_CONST(NS::NotificationName, ProcessInfoPowerStateDidChangeNotification); | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::ProcessInfo* NS::ProcessInfo::processInfo() | |
{ | |
return Object::sendMessage<ProcessInfo*>(_NS_PRIVATE_CLS(NSProcessInfo), _NS_PRIVATE_SEL(processInfo)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::Array* NS::ProcessInfo::arguments() const | |
{ | |
return Object::sendMessage<Array*>(this, _NS_PRIVATE_SEL(arguments)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::Dictionary* NS::ProcessInfo::environment() const | |
{ | |
return Object::sendMessage<Dictionary*>(this, _NS_PRIVATE_SEL(environment)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::String* NS::ProcessInfo::hostName() const | |
{ | |
return Object::sendMessage<String*>(this, _NS_PRIVATE_SEL(hostName)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::String* NS::ProcessInfo::processName() const | |
{ | |
return Object::sendMessage<String*>(this, _NS_PRIVATE_SEL(processName)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::setProcessName(const String* pString) | |
{ | |
Object::sendMessage<void>(this, _NS_PRIVATE_SEL(setProcessName_), pString); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE int NS::ProcessInfo::processIdentifier() const | |
{ | |
return Object::sendMessage<int>(this, _NS_PRIVATE_SEL(processIdentifier)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::String* NS::ProcessInfo::globallyUniqueString() const | |
{ | |
return Object::sendMessage<String*>(this, _NS_PRIVATE_SEL(globallyUniqueString)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::String* NS::ProcessInfo::userName() const | |
{ | |
return Object::sendMessageSafe<String*>(this, _NS_PRIVATE_SEL(userName)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::String* NS::ProcessInfo::fullUserName() const | |
{ | |
return Object::sendMessageSafe<String*>(this, _NS_PRIVATE_SEL(fullUserName)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::UInteger NS::ProcessInfo::operatingSystem() const | |
{ | |
return Object::sendMessage<UInteger>(this, _NS_PRIVATE_SEL(operatingSystem)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::OperatingSystemVersion NS::ProcessInfo::operatingSystemVersion() const | |
{ | |
return Object::sendMessage<OperatingSystemVersion>(this, _NS_PRIVATE_SEL(operatingSystemVersion)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::String* NS::ProcessInfo::operatingSystemVersionString() const | |
{ | |
return Object::sendMessage<String*>(this, _NS_PRIVATE_SEL(operatingSystemVersionString)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE bool NS::ProcessInfo::isOperatingSystemAtLeastVersion(OperatingSystemVersion version) const | |
{ | |
return Object::sendMessage<bool>(this, _NS_PRIVATE_SEL(isOperatingSystemAtLeastVersion_), version); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::UInteger NS::ProcessInfo::processorCount() const | |
{ | |
return Object::sendMessage<UInteger>(this, _NS_PRIVATE_SEL(processorCount)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::UInteger NS::ProcessInfo::activeProcessorCount() const | |
{ | |
return Object::sendMessage<UInteger>(this, _NS_PRIVATE_SEL(activeProcessorCount)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE unsigned long long NS::ProcessInfo::physicalMemory() const | |
{ | |
return Object::sendMessage<unsigned long long>(this, _NS_PRIVATE_SEL(physicalMemory)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::TimeInterval NS::ProcessInfo::systemUptime() const | |
{ | |
return Object::sendMessage<TimeInterval>(this, _NS_PRIVATE_SEL(systemUptime)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::disableSuddenTermination() | |
{ | |
Object::sendMessageSafe<void>(this, _NS_PRIVATE_SEL(disableSuddenTermination)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::enableSuddenTermination() | |
{ | |
Object::sendMessageSafe<void>(this, _NS_PRIVATE_SEL(enableSuddenTermination)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::disableAutomaticTermination(const String* pReason) | |
{ | |
Object::sendMessageSafe<void>(this, _NS_PRIVATE_SEL(disableAutomaticTermination_), pReason); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::enableAutomaticTermination(const String* pReason) | |
{ | |
Object::sendMessageSafe<void>(this, _NS_PRIVATE_SEL(enableAutomaticTermination_), pReason); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE bool NS::ProcessInfo::automaticTerminationSupportEnabled() const | |
{ | |
return Object::sendMessageSafe<bool>(this, _NS_PRIVATE_SEL(automaticTerminationSupportEnabled)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::setAutomaticTerminationSupportEnabled(bool enabled) | |
{ | |
Object::sendMessageSafe<void>(this, _NS_PRIVATE_SEL(setAutomaticTerminationSupportEnabled_), enabled); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::Object* NS::ProcessInfo::beginActivity(ActivityOptions options, const String* pReason) | |
{ | |
return Object::sendMessage<Object*>(this, _NS_PRIVATE_SEL(beginActivityWithOptions_reason_), options, pReason); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::endActivity(Object* pActivity) | |
{ | |
Object::sendMessage<void>(this, _NS_PRIVATE_SEL(endActivity_), pActivity); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::performActivity(ActivityOptions options, const String* pReason, void (^block)(void)) | |
{ | |
Object::sendMessage<void>(this, _NS_PRIVATE_SEL(performActivityWithOptions_reason_usingBlock_), options, pReason, block); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::performActivity(ActivityOptions options, const String* pReason, const std::function<void()>& function) | |
{ | |
__block std::function<void()> blockFunction = function; | |
performActivity(options, pReason, ^() { blockFunction(); }); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::performExpiringActivity(const String* pReason, void (^block)(bool expired)) | |
{ | |
Object::sendMessageSafe<void>(this, _NS_PRIVATE_SEL(performExpiringActivityWithReason_usingBlock_), pReason, block); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE void NS::ProcessInfo::performExpiringActivity(const String* pReason, const std::function<void(bool expired)>& function) | |
{ | |
__block std::function<void(bool expired)> blockFunction = function; | |
performExpiringActivity(pReason, ^(bool expired) { blockFunction(expired); }); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE NS::ProcessInfoThermalState NS::ProcessInfo::thermalState() const | |
{ | |
return Object::sendMessage<ProcessInfoThermalState>(this, _NS_PRIVATE_SEL(thermalState)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE bool NS::ProcessInfo::isLowPowerModeEnabled() const | |
{ | |
return Object::sendMessageSafe<bool>(this, _NS_PRIVATE_SEL(isLowPowerModeEnabled)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE bool NS::ProcessInfo::isiOSAppOnMac() const | |
{ | |
return Object::sendMessageSafe<bool>(this, _NS_PRIVATE_SEL(isiOSAppOnMac)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
_NS_INLINE bool NS::ProcessInfo::isMacCatalystApp() const | |
{ | |
return Object::sendMessageSafe<bool>(this, _NS_PRIVATE_SEL(isMacCatalystApp)); | |
} | |
//------------------------------------------------------------------------------------------------------------------------------------------------------------- | |