flagflag  If you want to see English page, please click "English" Button at Left.
1: 2012-11-26 (月) 10:26:25 iseki ソース 現: 2014-11-30 (日) 22:14:38 iseki ソース
Line 3: Line 3:
-- MM -> Money Module, MS -> Money Server, VW -> Viewer -- MM -> Money Module, MS -> Money Server, VW -> Viewer
-- RS -> Region(Robust) Server, US -> User(Robust) Server, SC -> External Script -- RS -> Region(Robust) Server, US -> User(Robust) Server, SC -> External Script
--- AS -> Aurora Server 
- 
-*** Upload [#qf044492] 
-- OpenSim/Region/ClientStack/Linden/Caps/B​unchOfCaps/BunchOfCaps.cs 
--- NewAgentInventoryRequest() --> UploadCovered() 
--- UploadCompleteHandler()  --> 
---- OpenSim/Region/Framework/Scenes/Scene.In​ventory.cs:AddUploadedInventoryItem() --> ApplyUploadCharge() 
- 
--OpenSim/Region/ClientStack/Linden/Caps/​NewFileAgentInventoryVariablePriceModule​.cs 
--- NewAgentInventoryRequest() --> UploadCovered() 
- 
-- OpenSim/Region/CoreModules/Agent/AssetTr​ansaction/AssetTransactionModule.cs 
--- HandleUDPUploadRequest() --> UploadCovered() 
- 
#br #br
-*** Events of [[OpenSim]] [#e5339d2e]+*** Events [#e5339d2e]
- OpenSim では IClientAPI.cs の event は EventManager からアクセス可 - OpenSim では IClientAPI.cs の event は EventManager からアクセス可
**** MoneyTransferRequest [#r8b4f5a8] **** MoneyTransferRequest [#r8b4f5a8]
 +- 他のアバターへの直接的な支払い,ギフト (Gift: 5001)
- event MoneyTransferRequest OnMoneyTransferRequest; (IClientAPI.cs) - event MoneyTransferRequest OnMoneyTransferRequest; (IClientAPI.cs)
-- 他のアバターへの直接的な支払い,ギフト (Gift: 5001) 
 MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")  MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
Line 50: Line 36:
- event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs) - event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs)
#br #br
-**** ObjectBuy [#fa02b07e] +**** OnObjectBuy [#fa02b07e]
-- event ObjectBuy OnObjectBuy; (IClientAPI.cs)+
- オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008) - オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008)
 +- event ObjectBuy OnObjectBuy; (IClientAPI.cs)
 MM.OnObjectBuy() -> MM.BuyObject()  MM.OnObjectBuy() -> MM.BuyObject()
                 -> MM.Transfer() => XML RPC to MS ("TransferMoney")                  -> MM.Transfer() => XML RPC to MS ("TransferMoney")
 +- BuyObject(): OpenSim/Region/CoreModules/World/Objects​/BuySell/BuySellModule.cs
 +#br
 +
**** BuyObjectInventory [#r0601ce9] **** BuyObjectInventory [#r0601ce9]
- event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs) - event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs)
Line 67: Line 56:
#br #br
-*** Events of [[Aurora-Sim]] [#gaf1e4d2] 
-**** MoneyTransferRequest [#r75d82bd] 
-- event MoneyTransferRequest OnMoneyTransferRequest; (IClientAPI.cs) 
-- MM.MoneyTransferRequest() は MoneyTransferArgs と Scene を生成して MM.MoneyTransferAction() を起動している. 
-- 他のアバターへの直接的な支払い,ギフト (Gift: 5001) 
- 
- MM.MoneyTransferRequest() -> MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney") 
- 
-- オブジェクトを経由した,他のアバターへの間接的な支払い (PayObject: 5008) 
-- LSL の money イベントが発生する 
- 
- MM.MoneyTransferRequest() -> MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney") 
- 
-**** EconomyDataRequest [#m8d1d002] 
-- event EconomyDataRequest OnEconomyDataRequest; (IClientAPI.cs) 
#br #br
-**** MoneyBalanceRequest [#hb9ef1bb] 
-- event MoneyBalanceRequest OnMoneyBalanceRequest; (IClientAPI.cs) 
-#br 
-**** ParcelBuy [#o5f6bf7b] 
-- event ParcelBuy OnParcelBuy; (IClientAPI.cs) 
-#br 
-**** ParcelBuyPass [#rbe3aa81] 
-- event ParcelBuyPass OnParcelBuyPass; (IClientAPI.cs) 
-#br 
-**** RequestPayPrice [#u6cc905a] 
-- event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs) 
-#br 
- 
-**** ObjectBuy [#j0e098d1] 
-- event ObjectBuy OnObjectBuy; (IClientAPI.cs) 
-- オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008) 
-- ObjectBuy(), BuyObject() は Aurora の BuySell/BuySellModule.cs で定義 
- 
- ObjectBuy() -> MM.Transfer() => XML RPC to MS ("TransferMoney") 
-             -> BuyObject() 
- 
- 
-**** BuyObjectInventory [#fcee3361] 
-- event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs) 
-#br 
- 
-**** LandBuy [#k2cc0b9f] 
-- event LandBuy OnValidateBuyLan; (ISceneEntity.cs) 
-#br 
- 
** Calling Sequence of Functions [#nb8e520e] ** Calling Sequence of Functions [#nb8e520e]
Line 131: Line 75:
 2. VW => XML RPC to helper SC ("buyCurrency") -> SC.add_money() => XML RPC("AddBankerMoney") => MM => XML RPC("AddBankerMoney") => MS  2. VW => XML RPC to helper SC ("buyCurrency") -> SC.add_money() => XML RPC("AddBankerMoney") => MM => XML RPC("AddBankerMoney") => MS
                                               => Response to VW                                                => Response to VW
-- [[XML>../currency.php#ad93a73d]]+- [[XML>../../currency.php#ad93a73d]]
#br #br
Line 137: Line 81:
- Code: LandSale (5002) - Code: LandSale (5002)
-**** [[OpenSim]] [#y8b5a299] 
 1. VW => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VW  1. VW => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VW
 2. MM.OnValidateLandBuy event -> MM.ValidateLandBuy()  2. MM.OnValidateLandBuy event -> MM.ValidateLandBuy()
 3. MM.OnLandBuy event -> MM.processLandBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")  3. MM.OnLandBuy event -> MM.processLandBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
-**** [[Aurora-Sim]] [#j67dee7a] +- 資金が足りないとき
-- OnParcelBuy event, ProcessParcelBuy() は Aurora の Land/ParcelManagementModule.cs で定義+
- 1. VW => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VW + 2. VW => XML RPC to helper SC ("buyLandPrep") => SC.add_money() => XML RPC("AddBankerMoney") => MM => XML RPC("AddBankerMoney") => MS 
- 2. OnParcelBuy event -> ProcessParcelBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")+                                             => Response to VW
*** Upload Inventory [#hc7d10a4] *** Upload Inventory [#hc7d10a4]
-**** [[OpenSim]] [#l5dfbca9] 
 1. event -> RS.NewAgentInventoryRequest() -> MM.UploadCovered()  1. event -> RS.NewAgentInventoryRequest() -> MM.UploadCovered()
 2. event -> RS.AddUploadedInventoryItem() -> MM.ApplyUploadCharge()  2. event -> RS.AddUploadedInventoryItem() -> MM.ApplyUploadCharge()
-- OpenSim/Region/ClientStack/Linden/Caps/B​unchOfCaps/BunchOfCaps.cs: NewAgentInventoryRequest() +- OpenSim/Region/ClientStack/Linden/Caps/B​unchOfCaps/BunchOfCaps.cs 
-- OpenSim/Region/Framework/Scenes/Scene.In​ventory.cs: AddUploadedInventoryItem() +-- NewAgentInventoryRequest() --> UploadCovered() 
-- %%OpenSim/Region/CoreModules/Agent/Asset​Transaction/AssetTransactionModule.cs: HandleUDPUploadRequest()%% +-- UploadCompleteHandler()  --> 
-- %%OpenSim/Region/ClientStack/Linden/Caps​/NewFileAgentInventoryVariablePriceModul​e.cs: NewAgentInventoryRequest()%% +--- OpenSim/Region/Framework/Scenes/Scene.In​ventory.cs:AddUploadedInventoryItem() --> ApplyUploadCharge()
-#br+
-**** [[Aurora-Sim]] [#k06e705b] +- %%OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule​.cs%% 
- 1. event -> AS.NewAgentInventoryRequest() -> AS.RequestUploadCovered() => XML RPC to RS ("UploadCovered") +-- %%NewAgentInventoryRequest() --> UploadCovered()%% 
- 2. event -> AS.UploadCompleteHandler() -> AS.RequestUploadCharge() => XML RPC to RS ("UploadCharge") +- %%OpenSim/Region/CoreModules/Agent/AssetTr​ansaction/AssetTransactionModule.cs%% 
- +-- %%HandleUDPUploadRequest() --> UploadCovered()%%
-- TCP: OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: NewAgentInventoryRequest() +
-- TCP: OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: UploadCompleteHandler() +
-- UDP: OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs: HandleUDPUploadRequest() +
-- %%OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: NewAgentInventoryRequest()%% +
-- %%OpenSim/Services/CapsService/CAPModule​s/InventoryCAPS.cs: HandleInventoryItemCreate()%% +
-#br +
----- +
-- Aurora-Sim では seed_capability として Robust サーバ(Aurora.Server)が指定される( OpenSim では Regionサーバ) +
-- 従って,Uoload では Regionサーバでイベントが発生せず,Robustサーバ(Aurora.Server) でイベントが発生する. +
- +
-+ Robust サーバ(Aurora.Server) に MoneyModule をロードする. +
--- 通常のモジュールの読み込みとしては? +
--- OpenSim/Services/XXX/ にプログラムを作って,サービスとしてロードさせる.サービスは AuroraServerConfig/Main.ini の [Handlers]セクションで指定. +
--- 詳細不明で断念. +
-+ seed_capability を強制的に Regionサーバにする. +
--- OpenSim/Services/LLLoginService/LLLoginR​​esponse.cs での LLLoginResponseクラスのコンストラクタ LLLoginResponse(...) で SeedCapability = destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPa​​th); を追加する. +
--- 上記の手法により,seed_capability を強制的に Regionサーバにすることは可能. +
--- この場合,OpenSim/Region/CoreModules/Agent/AssetTransacti​on/AssetTransactionModule.cs: HandleUDPUploadRequest() がトリガーされる. +
--- ただし,Regionサーバで Capabilityが定義されないため,Assetの Uploadの通信が UDPとなる(遅い!!)-> 断念. +
--- 因みに,OpenSim ではこの部分には FillOutSeedCap() という関数が使用されている. +
- FillOutSeedCap(aCircuit, destination, clientIP); +
- +
- private void FillOutSeedCap(AgentCircuitData aCircuit, GridRegion destination, IPEndPoint ipepClient) +
- { +
-     SeedCapability =  destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPa​th); +
- } +
-+ Robust サーバ(Aurora.Server) から Regionサーバの MoneyModule を呼び出す. +
--- penSim/Services/CapsService/CAPModules/I​nventoryCAPS.cs 内でトリガーされる関数から XML RPCを使用して Regionサーバにアクセス. +
--- この手法を採用!!+
#br #br
*** Create Group [#udce041d] *** Create Group [#udce041d]
-**** [[OpenSim]] [#l33e521d] 
- 
 event -> CreateGroup() -> MM.AmountCharge()  event -> CreateGroup() -> MM.AmountCharge()
                       -> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge")                        -> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge")
- OpenSim/Region/OptionalModules/Avatar/Xm​lRpcGroups/GroupsModule.cs: CreateGroup() - OpenSim/Region/OptionalModules/Avatar/Xm​lRpcGroups/GroupsModule.cs: CreateGroup()
-#br 
- 
-**** [[Aurora-Sim]] [#j12b76cf] 
- event -> CreateGroup() -> MM.AmountCharge() 
-                       -> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge") 
-- OpenSim/Region/CoreModules/Avatar/Groups​/GroupsModule.cs: CreateGroup() 
#br #br
Line 225: Line 128:
 XML RPC from SC ("SendMoney") => MM.SendMoneyHandler() -> MM.SendMoney() => XML RPC to MS ("SendMoney")  XML RPC from SC ("SendMoney") => MM.SendMoneyHandler() -> MM.SendMoney() => XML RPC to MS ("SendMoney")
-#br 
- 
-*** XML RPC (from Aurora.Server) [#u0336e20] 
- XML RPC from AS ("UploadCovered") => MM.UploadCoveredHandler() => XML RPC to MS ("GetBalance") 
- XML RPC from AS ("UploadCharge") => MM.UploadChargeHandler()  => XML RPC to MS ("PayMoneyCharge") 
#br #br


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 5月翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
<今日>

オンライン状況

69 人のユーザが現在オンラインです。 (15 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 69

もっと...

アクセスカウンタ

今日 : 1040810408104081040810408
昨日 : 1753317533175331753317533
総計 : 2347355123473551234735512347355123473551234735512347355123473551
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com