objc_generator_templates.py [plain text]
class ObjCGeneratorTemplates:
HeaderPrelude = (
"""#import <Foundation/Foundation.h>
${includes}
""")
HeaderPostlude = (
"""""")
TypeConversionsHeaderPrelude = (
"""${includes}
namespace Inspector {""")
TypeConversionsHeaderPostlude = (
"""} // namespace Inspector
""")
GenericHeaderPrelude = (
"""${includes}""")
GenericHeaderPostlude = (
"""""")
TypeConversionsHeaderStandard = (
"""template<typename ObjCEnumType>
std::optional<ObjCEnumType> fromProtocolString(const String& value);""")
BackendDispatcherHeaderPrelude = (
"""${includes}
${forwardDeclarations}
namespace Inspector {
""")
BackendDispatcherHeaderPostlude = (
"""} // namespace Inspector
""")
BackendDispatcherImplementationPrelude = (
"""#import "config.h"
#import ${primaryInclude}
${secondaryIncludes}
namespace Inspector {""")
BackendDispatcherImplementationPostlude = (
"""} // namespace Inspector
""")
ImplementationPrelude = (
"""#import ${primaryInclude}
${secondaryIncludes}
using namespace Inspector;""")
ImplementationPostlude = (
"""""")
BackendDispatcherHeaderDomainHandlerInterfaceDeclaration = (
"""class Alternate${domainName}BackendDispatcher : public AlternateBackendDispatcher {
public:
virtual ~Alternate${domainName}BackendDispatcher() { }
${commandDeclarations}
};""")
BackendDispatcherHeaderDomainHandlerObjCDeclaration = (
"""class ObjCInspector${domainName}BackendDispatcher final : public Alternate${domainName}BackendDispatcher {
public:
ObjCInspector${domainName}BackendDispatcher(id<${objcPrefix}${domainName}DomainHandler> handler) { m_delegate = handler; }
${commandDeclarations}
private:
RetainPtr<id<${objcPrefix}${domainName}DomainHandler>> m_delegate;
};""")
BackendDispatcherHeaderDomainHandlerImplementation = (
"""void ObjCInspector${domainName}BackendDispatcher::${commandName}(${parameters})
{
id errorCallback = ^(NSString *error) {
backendDispatcher()->reportProtocolError(requestId, BackendDispatcher::ServerError, error);
backendDispatcher()->sendPendingErrors();
};
${successCallback}
${conversions}
${invocation}
}
""")
ConfigurationCommandProperty = (
"""@property (nonatomic, retain, setter=set${domainName}Handler:) id<${objcPrefix}${domainName}DomainHandler> ${variableNamePrefix}Handler;""")
ConfigurationEventProperty = (
"""@property (nonatomic, readonly) ${objcPrefix}${domainName}DomainEventDispatcher *${variableNamePrefix}EventDispatcher;""")
ConfigurationCommandPropertyImplementation = (
"""- (void)set${domainName}Handler:(id<${objcPrefix}${domainName}DomainHandler>)handler
{
if (handler == _${variableNamePrefix}Handler)
return;
[_${variableNamePrefix}Handler release];
_${variableNamePrefix}Handler = [handler retain];
auto alternateDispatcher = std::make_unique<ObjCInspector${domainName}BackendDispatcher>(handler);
auto alternateAgent = std::make_unique<AlternateDispatchableAgent<${domainName}BackendDispatcher, Alternate${domainName}BackendDispatcher>>(ASCIILiteral("${domainName}"), *_controller, WTFMove(alternateDispatcher));
_controller->appendExtraAgent(WTFMove(alternateAgent));
}
- (id<${objcPrefix}${domainName}DomainHandler>)${variableNamePrefix}Handler
{
return _${variableNamePrefix}Handler;
}""")
ConfigurationGetterImplementation = (
"""- (${objcPrefix}${domainName}DomainEventDispatcher *)${variableNamePrefix}EventDispatcher
{
if (!_${variableNamePrefix}EventDispatcher)
_${variableNamePrefix}EventDispatcher = [[${objcPrefix}${domainName}DomainEventDispatcher alloc] initWithController:_controller];
return _${variableNamePrefix}EventDispatcher;
}""")