OROCHI
 
Loading...
Searching...
No Matches
GxNpTus.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12#if defined(_PS4) || defined(_PS5)
13
14#if !defined(_PS5)
15
16GX_NETWORK_NAMESPACE_BEGIN()
17
18using GxTusRequestID = GxNpRequestID;
19using GxTusData = GxStorageData;
20
21//===========================================================================
23//===========================================================================
24struct GxNpTusID
25{
26 //-----------------------------------------------------------
28 //-----------------------------------------------------------
30public:
31 GxNativeAccountId _targetID;
32
34};
35
36//===========================================================================
38//===========================================================================
39class GxNpTus : public GxNpStorage
40{
41 //-----------------------------------------------------------
43 //-----------------------------------------------------------
45public:
46 GX_OPERATOR_NEW_DELETE(GxAllocatorList::ALLOCATOR_TYPE::SYSTEM)
47
48
49 //-----------------------------------------------------------
51 //-----------------------------------------------------------
53
55 static GxNpTus* create(void);
57 s32 initialize(void) override;
59 void terminate(void) override;
60private:
62 GxNpTus(void) : _tusTitleContext(-1), _requestID(-1), _error(-1), _serviceLabel(0) {}
64 ~GxNpTus(void) override {}
65
67 //-----------------------------------------------------------
69 //-----------------------------------------------------------
71public:
72 // initializeの前に呼ぶ事、PS4のみ有効になる(vitaにサービスラベルを指定する機能がない)
73 // 1タイトルに1TUSしか登録していないなら基本気にしなくてよい
75 constexpr void setServiceLabel(u32 label){ _serviceLabel = label; }
76
77 // defaultでは自IDなので、他のユーザーのTUSにアクセスしに行くとき使用する。(PS4は効果なし 互換性のため残している)
79 void setTargetNpID(const SceNpId& /*targetNpId*/) {}
80
81 // defaultでは自IDなので、他のユーザーのTUSにアクセスしに行くとき使用する。
83 constexpr void setTargetIDForTus(const GxNpTusID id){ _tusID = id; }
84
85 // 非同期なのでリクエストの完了を isFinishで待つ必要がある。
86 //   目的のスロットにデータがなくてもisFinishは成功する。その時GxNativeUserStrageDataStatusのHasDataが0
88 GxTusRequestID getMultiSlotStatus(GxNativeUserStrageDataStatus* pStatusArray, s32* pSlotArray, u32 ArraySize);
89
90 // 非同期なのでリクエストの完了を isFinishで待つ必要がある。
92 GxTusRequestID setUserData(const GxTusData& tusData, s32 slot, const GxNativeUserStrageDataInfo& datainfo);
93
94 // 非同期なのでリクエストの完了を isFinishで待つ必要がある。
96 GxTusRequestID getUserData(GxTusData& tusData, s32 slot, GxNativeUserStrageDataStatus& dataStatus);
97
98 // 非同期なのでリクエストの完了を isFinishで待つ必要がある。
100 GxTusRequestID deleteMultiSlotUserData(s32* pSlot, u32 size);
101
103 //-----------------------------------------------------------
105 //-----------------------------------------------------------
107private:
108 GxNpTusID _tusID;
109 s32 _tusTitleContext;
110 s32 _requestID;
111 s32 _error;
112 u32 _serviceLabel;
113
115};
116GX_NETWORK_NAMESPACE_END()
117
118#endif
119#endif //_PS4 || _PS5