Package pragma
Class PragmaOptions
java.lang.Object
pragma.PragmaOptions
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumProtobuf enumpragma.ExternalVisibilitystatic enumProtobuf enumpragma.PragmaBackendTypestatic enumProtobuf enumpragma.PragmaMessageTypestatic enumProtobuf enumpragma.PragmaSessionType -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.FileOptions,PragmaOptions.PragmaBackendType> This value determines what backend generated service code communicates with.static final intstatic final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.FieldOptions,Boolean> Defines whether a string should be treated as a key/symbol and allows the PragmaSDK code generators to determine a custom export type to use in the SDK code.static final intstatic final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,PragmaOptions.ExternalVisibility> extend .google.protobuf.MessageOptions { ...static final intstatic final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,Boolean> Whether the type should appear in the SDK and types endpoint.static final intstatic final intstatic final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,PragmaOptions.PragmaMessageType> Use with any type meant to be sent over the wire.static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,PragmaOptions.PragmaSessionType> Defines which Session a message belongs to.static final intstatic final intstatic final intstatic final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.EnumOptions,String> Defines the name of the type as it should appear in the Unreal SDK.static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.FileOptions,String> Similar to built-in csharp_namespace, this value is used to namespace Unreal types.static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,String> Defines the name of the type as it should appear in the Unreal SDK. -
Method Summary
Modifier and TypeMethodDescriptionstatic com.google.protobuf.Descriptors.FileDescriptorstatic voidregisterAllExtensions(com.google.protobuf.ExtensionRegistry registry) static voidregisterAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)
-
Field Details
-
PRAGMA_MESSAGE_TYPE_FIELD_NUMBER
public static final int PRAGMA_MESSAGE_TYPE_FIELD_NUMBER- See Also:
-
pragmaMessageType
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,PragmaOptions.PragmaMessageType> pragmaMessageTypeUse with any type meant to be sent over the wire. Example usage: option (pragma_message_type) = REQUEST;
extend .google.protobuf.MessageOptions { ... } -
PRAGMA_SESSION_TYPE_FIELD_NUMBER
public static final int PRAGMA_SESSION_TYPE_FIELD_NUMBER- See Also:
-
pragmaSessionType
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,PragmaOptions.PragmaSessionType> pragmaSessionTypeDefines which Session a message belongs to. Only valid for REQUEST, RESPONSE, or NOTIFICATION message types. Example usage: option (pragma_session_type) = PLAYER;
extend .google.protobuf.MessageOptions { ... } -
UNREAL_TYPE_NAME_FIELD_NUMBER
public static final int UNREAL_TYPE_NAME_FIELD_NUMBER- See Also:
-
unrealTypeName
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,String> unrealTypeNameDefines the name of the type as it should appear in the Unreal SDK. Note that this name will still be prepended with FPragma_. Example usage: option (unreal_type_name) = PlatformError; Result: FPragma_PlatformError
extend .google.protobuf.MessageOptions { ... } -
EXTERNAL_VISIBILITY_FIELD_NUMBER
public static final int EXTERNAL_VISIBILITY_FIELD_NUMBER- See Also:
-
externalVisibility
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,PragmaOptions.ExternalVisibility> externalVisibilityextend .google.protobuf.MessageOptions { ... } -
FORCE_INCLUDE_TYPE_FIELD_NUMBER
public static final int FORCE_INCLUDE_TYPE_FIELD_NUMBER- See Also:
-
forceIncludeType
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,Boolean> forceIncludeTypeWhether the type should appear in the SDK and types endpoint. This is used for application errors. force_include_type overrides external_visibility being set to hide.
extend .google.protobuf.MessageOptions { ... } -
UNREAL_ENUM_NAME_FIELD_NUMBER
public static final int UNREAL_ENUM_NAME_FIELD_NUMBER- See Also:
-
unrealEnumName
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.EnumOptions,String> unrealEnumNameDefines the name of the type as it should appear in the Unreal SDK. Note that this name will still be prepended with EPragma_. Example usage: option (unreal_enum_name) = "PlatformError"; Result: EPragma_PlatformError
extend .google.protobuf.EnumOptions { ... } -
UNREAL_NAMESPACE_FIELD_NUMBER
public static final int UNREAL_NAMESPACE_FIELD_NUMBER- See Also:
-
unrealNamespace
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.FileOptions,String> unrealNamespaceSimilar to built-in csharp_namespace, this value is used to namespace Unreal types. Unreal doesn't play nice with actual C++ namespaces, so we instead namespace in the type name. By default, types will use the leaf node of the package for this value, but can be overridden to make it nicer. Set to "null" to force no namespace to be used (e.g. FPragma_Fixed128). Example usage: package pragma.mygreetings; option (unreal_namespace) = "Greetings"; message Hello {} Result without option: FPragma_Mygreetings_Hello Result with option: FPragma_Greetings_Helloextend .google.protobuf.FileOptions { ... } -
BACKEND_TYPE_FIELD_NUMBER
public static final int BACKEND_TYPE_FIELD_NUMBER- See Also:
-
backendType
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.FileOptions,PragmaOptions.PragmaBackendType> backendTypeThis value determines what backend generated service code communicates with. Defaults to PragmaBackendType.Game. Example usage: option (backend_type) = PragmaBackendType.Social;
extend .google.protobuf.FileOptions { ... } -
EXPORT_AS_KEY_FIELD_NUMBER
public static final int EXPORT_AS_KEY_FIELD_NUMBER- See Also:
-
exportAsKey
public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.FieldOptions,Boolean> exportAsKeyDefines whether a string should be treated as a key/symbol and allows the PragmaSDK code generators to determine a custom export type to use in the SDK code. Using a custom key type instead of a string has two primary benefits: 1. Memory allocation: Strings can hurt a program’s performance if string objects are repeatedly created and destroyed when the same object could have been reused in their place. For this reason, a program that uses keys/symbols over strings (when possible) will run more efficiently. 2. Performance: In languages that support a custom key/symbol type, the == operator can be used to compare two keys, and return true or false if the names match the same internal index. This provides significant CPU savings since it is a O(1) constant time operation rather than O(n) linear time of a string comparison. TL;DR: If the textual content of the object is important, use a string. If the identity of the object is important, use a key/symbol. Example usage: string hero = 1 [(export_as_key) = true]; Result: FName (Unreal's key type) will be used as the Unreal SDK type instead of FString.extend .google.protobuf.FieldOptions { ... }
-
-
Method Details
-
registerAllExtensions
public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) -
registerAllExtensions
public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) -
getDescriptor
public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor()
-