flagflag  
1: 2012-11-26 (Mon) 10:26:25 iseki source Cur: 2014-11-30 (Sun) 22:14:38 iseki source
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


Front page   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthMay 2024Next Month
Su Mo Tu We Th Fr Sa
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
Today

Who's Online

23 user(s) are online (3 user(s) are browsing xpwiki)

Members: 0
Guests: 23

more...

Access Counter

Today : 4024402440244024
Yesterday : 8599859985998599
Total : 2365103023651030236510302365103023651030236510302365103023651030
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com