You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
12 KiB
203 lines
12 KiB
//====== Copyright 1996-2010, Valve Corporation, All rights reserved. =======
|
|
//
|
|
// Purpose: The file defines our Google Protocol Buffers which are used in over
|
|
// the wire messages between servers as well as between clients and servers.
|
|
//
|
|
//=============================================================================
|
|
|
|
// We care more about speed than code size
|
|
option optimize_for = SPEED;
|
|
|
|
// We don't use the service generation functionality
|
|
option cc_generic_services = false;
|
|
|
|
|
|
//
|
|
// STYLE NOTES:
|
|
//
|
|
// Use CamelCase CMsgMyMessageName style names for messages.
|
|
//
|
|
// Use lowercase _ delimited names like my_steam_id for field names, this is non-standard for Steam,
|
|
// but plays nice with the Google formatted code generation.
|
|
//
|
|
// Try not to use required fields ever. Only do so if you are really really sure you'll never want them removed.
|
|
// Optional should be preffered as it will make versioning easier and cleaner in the future if someone refactors
|
|
// your message and wants to remove or rename fields.
|
|
//
|
|
// Use fixed64 for JobId_t, GID_t, or SteamID. This is appropriate for any field that is normally
|
|
// going to be larger than 2^56. Otherwise use int64 for 64 bit values that are frequently smaller
|
|
// than 2^56 as it will safe space on the wire in those cases.
|
|
//
|
|
// Similar to fixed64, use fixed32 for RTime32 or other 32 bit values that are frequently larger than
|
|
// 2^28. It will safe space in those cases, otherwise use int32 which will safe space for smaller values.
|
|
// An exception to this rule for RTime32 is if the value will frequently be zero rather than set to an actual
|
|
// time.
|
|
//
|
|
|
|
enum EGCSystemMsg
|
|
{
|
|
k_EGCMsgInvalid = 0;
|
|
k_EGCMsgMulti = 1;
|
|
|
|
k_EGCMsgGenericReply = 10;
|
|
|
|
k_EGCMsgSystemBase = 50;
|
|
k_EGCMsgAchievementAwarded = 51;
|
|
k_EGCMsgConCommand = 52; // A command from the GC's admin console
|
|
k_EGCMsgStartPlaying = 53;
|
|
k_EGCMsgStopPlaying = 54;
|
|
k_EGCMsgStartGameserver = 55;
|
|
k_EGCMsgStopGameserver = 56;
|
|
k_EGCMsgWGRequest = 57;
|
|
k_EGCMsgWGResponse = 58;
|
|
k_EGCMsgGetUserGameStatsSchema = 59; // Gets the user game stats schema for the app
|
|
k_EGCMsgGetUserGameStatsSchemaResponse = 60;
|
|
k_EGCMsgGetUserStatsDEPRECATED = 61; // Gets user game stats for a user
|
|
k_EGCMsgGetUserStatsResponse = 62;
|
|
k_EGCMsgAppInfoUpdated = 63; // Message sent to the GC when there has been an AppInfo update
|
|
k_EGCMsgValidateSession = 64; // Message sent by the GC when it wants to make sure a session exists
|
|
k_EGCMsgValidateSessionResponse = 65; // Message sent to the GC in response to ValidateSession
|
|
k_EGCMsgLookupAccountFromInput = 66; // Sent by the GC to lookup user. Reply is k_EGCMsgGenericReply
|
|
k_EGCMsgSendHTTPRequest = 67; // Message sent by the GC to do a generic HTTP request
|
|
k_EGCMsgSendHTTPRequestResponse = 68; // Response back to the GC with the results of the HTTP request
|
|
k_EGCMsgPreTestSetup = 69; // Reset the GC database (usually for testing purposes)
|
|
k_EGCMsgRecordSupportAction = 70; // Logs a support action
|
|
k_EGCMsgGetAccountDetails_DEPRECATED = 71; // DEPRECATED - Use protobuf-based k_EGCMsgGetAccountDetails //Requests the details for an account
|
|
// k_EGCMsgSendInterAppMessage = 72; // Sends a message to another app's GC
|
|
k_EGCMsgReceiveInterAppMessage = 73; // Receives a message from another app's GC
|
|
k_EGCMsgFindAccounts = 74; // queries the AMs for accounts by name
|
|
k_EGCMsgPostAlert = 75; // posts an alert to Steam
|
|
k_EGCMsgGetLicenses = 76; // asks Steam for the user's licenses
|
|
k_EGCMsgGetUserStats = 77; // Gets user game stats for a user
|
|
k_EGCMsgGetCommands = 78; // request for a list of commands from a gc console
|
|
k_EGCMsgGetCommandsResponse = 79; // response with a list of commands for a gc console
|
|
k_EGCMsgAddFreeLicense = 80; // request for for Steam to add a license to the specified free package
|
|
k_EGCMsgAddFreeLicenseResponse = 81; // response with the result of the attempt to add a free license
|
|
k_EGCMsgGetIPLocation = 82; // Get geolocation data for a specific IP
|
|
k_EGCMsgGetIPLocationResponse = 83; // Geolocation response
|
|
|
|
k_EGCMsgSystemStatsSchema = 84; // Message sent by the GC specifying what its stats schema is
|
|
k_EGCMsgGetSystemStats = 85; // Message sent to the GC requesting its stats
|
|
k_EGCMsgGetSystemStatsResponse = 86; // Message sent by the GC with its stats
|
|
|
|
k_EGCMsgSendEmail = 87; // Sent by the GC to send an email to a user
|
|
k_EGCMsgSendEmailResponse = 88; // Response with the result of the send request
|
|
k_EGCMsgGetEmailTemplate = 89; // Sent to the GC to request an email template
|
|
k_EGCMsgGetEmailTemplateResponse = 90; // Get email template response
|
|
k_EGCMsgGrantGuestPass = 91; // Sends a guest pass/gift to a user
|
|
k_EGCMsgGrantGuestPassResponse = 92; // Send guest pass response
|
|
k_EGCMsgGetAccountDetails = 93; // Requests the details for an account
|
|
k_EGCMsgGetAccountDetailsResponse = 94; // Requests the details for an account response
|
|
k_EGCMsgGetPersonaNames = 95; // Gets the persona names for a set of accounts
|
|
k_EGCMsgGetPersonaNamesResponse = 96; // Gets the persona names for a set of accounts response
|
|
k_EGCMsgMultiplexMsg = 97; // Sends a single message to multiple users
|
|
|
|
// web API calls
|
|
k_EGCMsgWebAPIRegisterInterfaces = 101; // sent once at startup to register APIs
|
|
k_EGCMsgWebAPIJobRequest = 102; // sent when an actual request is made
|
|
// k_EGCMsgWebAPIRegistrationRequested = 103; // sent by the GC Host when it learns a web API server has started -- No longer sent by the GCH
|
|
k_EGCMsgWebAPIJobRequestHttpResponse = 104; // sent by the GC in response to k_EGCMsgWebAPIJobRequest - uses CMsgHttpResponse
|
|
k_EGCMsgWebAPIJobRequestForwardResponse = 105; // sent by the GC in response to k_EGCMsgWebAPIJobRequest - uses CMsgGCMsgWebAPIJobRequestForwardResponse
|
|
|
|
|
|
// Memcached
|
|
k_EGCMsgMemCachedGet = 200; // Get key(s) from memcached
|
|
k_EGCMsgMemCachedGetResponse = 201; // Retrieved keys
|
|
k_EGCMsgMemCachedSet = 202; // Set key(s) into memcached
|
|
k_EGCMsgMemCachedDelete = 203; // Delete key(s) from memcached
|
|
k_EGCMsgMemCachedStats = 204; // Request stats from memcached
|
|
k_EGCMsgMemCachedStatsResponse = 205; // Retrieved stats
|
|
|
|
// SQL
|
|
k_EGCMsgSQLStats = 210; // Get the current SQL stats
|
|
k_EGCMsgSQLStatsResponse = 211; // Retrieved stats
|
|
|
|
// Multi-GC setup
|
|
k_EGCMsgMasterSetDirectory = 220; // The master GC will send this back to the GCH indicating the sub GC's that need to be created
|
|
k_EGCMsgMasterSetDirectoryResponse = 221; // Response back from the GCH to the master GC regarding the successful receiving of the directory (note this doesn't mean all sub GCs are done starting up)
|
|
k_EGCMsgMasterSetWebAPIRouting = 222; // The master GC will send this back to the GCH indicating the routing details for WebAPI requests
|
|
k_EGCMsgMasterSetWebAPIRoutingResponse = 223; // Response back from the GCH to the master GC regarding the successful receipt and processing of k_EGCMsgMasterSetWebAPIRouting
|
|
k_EGCMsgMasterSetClientMsgRouting = 224; // The master GC will send this back to the GCH indicating the routing details for client messages
|
|
k_EGCMsgMasterSetClientMsgRoutingResponse = 225; // Response back from the GCH to the master GC regarding the successful receipt and processing of k_EGCMsgMasterSetClientMsgRouting
|
|
k_EGCMsgSetOptions = 226; // Each GC can send this back to the GCH indicating which client messages and data streams the GC is interested in
|
|
k_EGCMsgSetOptionsResponse = 227; // Response back from the GCH (optional - don't send a job ID with SetOptions to skip the response)
|
|
|
|
// Newer GC SDK messages. All should be protobuf based.
|
|
k_EGCMsgSystemBase2 = 500;
|
|
k_EGCMsgGetPurchaseTrustStatus = 501; // Gets information about a user's purchase trustworthiness
|
|
k_EGCMsgGetPurchaseTrustStatusResponse = 502; // Gets information about a user's purchase trustworthiness response
|
|
k_EGCMsgUpdateSession = 503; // GCH update regarding the status of a session, only sent if the convar to enable these messages is set
|
|
k_EGCMsgGCAccountVacStatusChange = 504; // Accounts VAC status has changed
|
|
k_EGCMsgCheckFriendship = 505; // GC checking if two users are friends
|
|
k_EGCMsgCheckFriendshipResponse = 506; // Response to the GC regarding the users' friendship
|
|
k_EGCMsgGetPartnerAccountLink = 507; // Request the partner account link details for a user
|
|
k_EGCMsgGetPartnerAccountLinkResponse = 508; // Response to the GC with the partner account link details
|
|
k_EGCMsgVSReportedSuspiciousActivity = 509; // Suspicious activity detected on user's account
|
|
k_EGCMsgAccountTradeBanStatusChange = 510; // Account's trade ban status has changed
|
|
k_EGCMsgAccountLockStatusChange = 511; // Account's lock status has changed
|
|
k_EGCMsgDPPartnerMicroTxns = 512; // A set of microtransaction data relayed to the DP for insert or update.
|
|
k_EGCMsgDPPartnerMicroTxnsResponse = 513; // ... Response
|
|
k_EGCMsgGetIPASN = 514; // Get ASN data for a specific IP
|
|
k_EGCMsgGetIPASNResponse = 515; // IP ASN response
|
|
k_EGCMsgGetAppFriendsList = 516; // GC requesting a list of app-friends for a user (defined as friends who play the app requesting the friends list)
|
|
k_EGCMsgGetAppFriendsListResponse = 517; // ... Response
|
|
k_EGCMsgVacVerificationChange = 518; // From VS to GC
|
|
k_EGCMsgAccountPhoneNumberChange = 519; // From Phone Server to GC
|
|
k_EGCMsgAccountTwoFactorChange = 520; // From AM to GC
|
|
k_EGCMsgCheckClanMembership = 521; // Checks if an account is a member of a given clan
|
|
k_EGCMsgCheckClanMembershipResponse = 522; // Checks if an account is a member of a given clan response
|
|
};
|
|
|
|
enum ESOMsg
|
|
{
|
|
k_ESOMsg_Create = 21;
|
|
k_ESOMsg_Update = 22;
|
|
k_ESOMsg_Destroy = 23;
|
|
k_ESOMsg_CacheSubscribed = 24;
|
|
k_ESOMsg_CacheUnsubscribed = 25;
|
|
k_ESOMsg_UpdateMultiple = 26;
|
|
k_ESOMsg_CacheSubscriptionCheck = 27; // need to get rid of this!
|
|
k_ESOMsg_CacheSubscriptionRefresh = 28;
|
|
k_ESOMsg_CacheSubscribedUpToDate = 29;
|
|
};
|
|
|
|
enum EGCBaseClientMsg
|
|
{
|
|
k_EMsgGCPingRequest = 3001; // GC <=> client
|
|
k_EMsgGCPingResponse = 3002; // GC <=> client
|
|
|
|
// WARNING: These messages were promoted into the gcsdk
|
|
// from base_gcmessages.proto (which is not part of the gcsdk put is
|
|
// "shared game code"). But we did not want to change the numbers
|
|
// for existing messages. Don't add new messages in the 4000 range!
|
|
k_EMsgGCClientWelcome = 4004; // GC => client
|
|
k_EMsgGCServerWelcome = 4005; // GC => server
|
|
k_EMsgGCClientHello = 4006; // client => GC
|
|
k_EMsgGCServerHello = 4007; // server => GC
|
|
|
|
k_EMsgGCClientGoodbye = 4008; // GC => client
|
|
k_EMsgGCServerGoodbye = 4009; // GC => server
|
|
|
|
// !FIXME! DOTAMERGE
|
|
//k_EMsgGCClientConnectionStatus = 4009; // GC => client
|
|
//k_EMsgGCServerConnectionStatus = 4010; // GC => server
|
|
|
|
};
|
|
|
|
enum EGCToGCMsg
|
|
{
|
|
k_EGCToGCMsgMasterAck = 150; // Sub GC => Master GC, confirm that we've started up successfully so the master can go when all sub GCs are ready
|
|
k_EGCToGCMsgMasterAckResponse = 151; // Master GC => Sub GC, the ack came through fine and everything is as expected
|
|
k_EGCToGCMsgRouted = 152; // Master GC => Sub GC, a routed message that originally came in from a client or the system and has been sent to another GC
|
|
k_EGCToGCMsgRoutedReply = 153; // Sub GC => Sub/Master GC, a reply message that needs to be sent back from the original GC that received the message
|
|
k_EMsgGCUpdateSubGCSessionInfo = 154; // Master GC => Other GCs
|
|
k_EMsgGCRequestSubGCSessionInfo = 155; // Sub GC => Master GC
|
|
k_EMsgGCRequestSubGCSessionInfoResponse = 156; // Master GC => Sub GC
|
|
k_EGCToGCMsgMasterStartupComplete = 157; // Master GC => Sub GC - Indicates that the master universe has completed startup, indicating that sub GC's are in a good spot to complete startup
|
|
k_EMsgGCToGCSOCacheSubscribe = 158; // Master GC => Sub GC - A steam ID has subscribed to another SO cache (or possibly their own)
|
|
k_EMsgGCToGCSOCacheUnsubscribe = 159; // Master GC => Sub GC - A steam ID has unsubscribed from another SO cache (or possibly their own)
|
|
}
|
|
|
|
|
|
// Do not remove this comment due to a bug on the Mac OS X protobuf compiler
|
|
|