Package pragma

Class PragmaOptions

java.lang.Object
pragma.PragmaOptions

public final class PragmaOptions extends Object
  • 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> pragmaMessageType
       Use 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> pragmaSessionType
       Defines 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> unrealTypeName
       Defines 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> externalVisibility
      extend .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> forceIncludeType
       Whether 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 { ... }
    • TYPE_REGISTRY_ID_FIELD_NUMBER

      public static final int TYPE_REGISTRY_ID_FIELD_NUMBER
      See Also:
    • typeRegistryId

      public static final com.google.protobuf.GeneratedMessage.GeneratedExtension<com.google.protobuf.DescriptorProtos.MessageOptions,Integer> typeRegistryId
       A project unique id to use for this type. It should be durable through renames
       for the same proto message
       
      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> unrealEnumName
       Defines 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> unrealNamespace
       Similar 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_Hello
       
      extend .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> backendType
       This 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> exportAsKey
       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.
      
       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()