SessionRequests.cpp 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <AzCore/RTTI/ReflectContext.h>
  9. #include <AzCore/Serialization/EditContext.h>
  10. #include <AzCore/Serialization/SerializeContext.h>
  11. #include <Multiplayer/Session/SessionRequests.h>
  12. #include <Multiplayer/Session/SessionConfig.h>
  13. namespace Multiplayer
  14. {
  15. void CreateSessionRequest::Reflect(AZ::ReflectContext* context)
  16. {
  17. if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
  18. {
  19. serializeContext->Class<CreateSessionRequest>()
  20. ->Version(0)
  21. ->Field("creatorId", &CreateSessionRequest::m_creatorId)
  22. ->Field("sessionProperties", &CreateSessionRequest::m_sessionProperties)
  23. ->Field("sessionName", &CreateSessionRequest::m_sessionName)
  24. ->Field("maxPlayer", &CreateSessionRequest::m_maxPlayer)
  25. ;
  26. if (AZ::EditContext* editContext = serializeContext->GetEditContext())
  27. {
  28. editContext->Class<CreateSessionRequest>("CreateSessionRequest", "The container for CreateSession request parameters")
  29. ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
  30. ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
  31. ->DataElement(AZ::Edit::UIHandlers::Default, &CreateSessionRequest::m_creatorId,
  32. "CreatorId", "A unique identifier for a player or entity creating the session")
  33. ->DataElement(AZ::Edit::UIHandlers::Default, &CreateSessionRequest::m_sessionProperties,
  34. "SessionProperties", "A collection of custom properties for a session")
  35. ->DataElement(AZ::Edit::UIHandlers::Default, &CreateSessionRequest::m_sessionName,
  36. "SessionName", "A descriptive label that is associated with a session")
  37. ->DataElement(AZ::Edit::UIHandlers::Default, &CreateSessionRequest::m_maxPlayer,
  38. "MaxPlayer", "The maximum number of players that can be connected simultaneously to the session")
  39. ;
  40. }
  41. }
  42. }
  43. void SearchSessionsRequest::Reflect(AZ::ReflectContext* context)
  44. {
  45. if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
  46. {
  47. serializeContext->Class<SearchSessionsRequest>()
  48. ->Version(0)
  49. ->Field("filterExpression", &SearchSessionsRequest::m_filterExpression)
  50. ->Field("sortExpression", &SearchSessionsRequest::m_sortExpression)
  51. ->Field("maxResult", &SearchSessionsRequest::m_maxResult)
  52. ->Field("nextToken", &SearchSessionsRequest::m_nextToken)
  53. ;
  54. if (AZ::EditContext* editContext = serializeContext->GetEditContext())
  55. {
  56. editContext->Class<SearchSessionsRequest>("SearchSessionsRequest", "The container for SearchSessions request parameters")
  57. ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
  58. ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
  59. ->DataElement(AZ::Edit::UIHandlers::Default, &SearchSessionsRequest::m_filterExpression,
  60. "FilterExpression", "String containing the search criteria for the session search")
  61. ->DataElement(AZ::Edit::UIHandlers::Default, &SearchSessionsRequest::m_sortExpression,
  62. "SortExpression", "Instructions on how to sort the search results")
  63. ->DataElement(AZ::Edit::UIHandlers::Default, &SearchSessionsRequest::m_maxResult,
  64. "MaxResult", "The maximum number of results to return")
  65. ->DataElement(AZ::Edit::UIHandlers::Default, &SearchSessionsRequest::m_nextToken,
  66. "NextToken", "A token that indicates the start of the next sequential page of results")
  67. ;
  68. }
  69. }
  70. }
  71. void SearchSessionsResponse::Reflect(AZ::ReflectContext* context)
  72. {
  73. if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
  74. {
  75. serializeContext->Class<SearchSessionsResponse>()
  76. ->Version(0)
  77. ->Field("sessionConfigs", &SearchSessionsResponse::m_sessionConfigs)
  78. ->Field("nextToken", &SearchSessionsResponse::m_nextToken)
  79. ;
  80. if (AZ::EditContext* editContext = serializeContext->GetEditContext())
  81. {
  82. editContext->Class<SearchSessionsResponse>("SearchSessionsResponse", "The container for SearchSession request results")
  83. ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
  84. ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
  85. ->DataElement(AZ::Edit::UIHandlers::Default, &SearchSessionsResponse::m_sessionConfigs,
  86. "SessionConfigs", "A collection of sessions that match the search criteria and sorted in specific order")
  87. ->DataElement(AZ::Edit::UIHandlers::Default, &SearchSessionsResponse::m_nextToken,
  88. "NextToken", "A token that indicates the start of the next sequential page of results")
  89. ;
  90. }
  91. }
  92. }
  93. void JoinSessionRequest::Reflect(AZ::ReflectContext* context)
  94. {
  95. if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
  96. {
  97. serializeContext->Class<JoinSessionRequest>()
  98. ->Version(0)
  99. ->Field("sessionId", &JoinSessionRequest::m_sessionId)
  100. ->Field("playerId", &JoinSessionRequest::m_playerId)
  101. ->Field("playerData", &JoinSessionRequest::m_playerData)
  102. ;
  103. if (AZ::EditContext* editContext = serializeContext->GetEditContext())
  104. {
  105. editContext->Class<JoinSessionRequest>("JoinSessionRequest", "The container for JoinSession request parameters")
  106. ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
  107. ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
  108. ->DataElement(AZ::Edit::UIHandlers::Default, &JoinSessionRequest::m_sessionId,
  109. "SessionId", "A unique identifier for the session")
  110. ->DataElement(AZ::Edit::UIHandlers::Default, &JoinSessionRequest::m_playerId,
  111. "PlayerId", "A unique identifier for a player. Player IDs are developer-defined")
  112. ->DataElement(AZ::Edit::UIHandlers::Default, &JoinSessionRequest::m_playerData,
  113. "PlayerData", "Developer-defined information related to a player")
  114. ;
  115. }
  116. }
  117. }
  118. } // namespace Multiplayer