flagflag  
18: 2012-11-21 (Wed) 17:02:23 iseki source Cur: 2012-11-26 (Mon) 10:27:54 iseki source
Line 1: Line 1:
** Events and delegate functions [#wfe0d130] ** Events and delegate functions [#wfe0d130]
-- 略号 +- [[OpenSim>./OpenSim]] 
--- MM -> Money Module, MS -> Money Server, VW -> Viewer +- [[Aurora-Sim>./AuroraSim]]
--- RS -> Region(Robust) Server, US -> User(Robust) Server, SC -> External Script +
--- AS -> Aurora Server +
- +
-*** Upload [#v627ee63] +
-- 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 +
- +
-*** Events of [[OpenSim]] [#j7353db0] +
-- OpenSim では IClientAPI.cs の event は EventManager からアクセス可 +
- +
-**** MoneyTransferRequest [#sf8bf831] +
-- event MoneyTransferRequest OnMoneyTransferRequest; (IClientAPI.cs) +
-- 他のアバターへの直接的な支払い,ギフト (Gift: 5001) +
- +
- MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney") +
- +
-- オブジェクトを経由した,他のアバターへの間接的な支払い (PayObject: 5008) +
-- LSL の money イベントが発生する +
- +
- MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney") +
- +
-**** EconomyDataRequest [#h210892a] +
-- event EconomyDataRequest OnEconomyDataRequest; (IClientAPI.cs) +
-#br +
- +
-**** MoneyBalanceRequest [#a47692c7] +
-- event MoneyBalanceRequest OnMoneyBalanceRequest; (IClientAPI.cs) +
-#br +
- +
-**** ParcelBuy [#n0f8eea6] +
-- event ParcelBuy OnParcelBuy; (IClientAPI.cs) +
-#br +
-**** ParcelBuyPass [#x7f5df0d] +
-- event ParcelBuyPass OnParcelBuyPass; (IClientAPI.cs) +
-#br +
-**** RequestPayPrice [#odf8b8d0] +
-- event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs) +
-#br +
-**** ObjectBuy [#n27e21f3] +
-- event ObjectBuy OnObjectBuy; (IClientAPI.cs) +
-- オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008) +
- +
- MM.OnObjectBuy() -> MM.BuyObject() +
-                 -> MM.Transfer() => XML RPC to MS ("TransferMoney") +
-**** BuyObjectInventory [#l2a928e5] +
-- event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs) +
-#br +
-**** MoneyTransferEvent [#t0193047] +
-- event MoneyTransferEvent OnMoneyTransfer; (EventManager.cs) +
-#br +
-**** LandBuy [#gb533cc8] +
-- event LandBuy OnValidateLandBuy; (EventManager.cs) +
-- event LandBuy OnLandBuy; (EventManager.cs) +
-#br +
- +
-*** Events of [[Aurora-Sim]] [#y1feeb2e] +
- +
-**** MoneyTransferRequest [#k001f9d9] +
-- 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 [#z69e9e82] +
-- event EconomyDataRequest OnEconomyDataRequest; (IClientAPI.cs) +
-#br +
-**** MoneyBalanceRequest [#ga2f8892] +
-- event MoneyBalanceRequest OnMoneyBalanceRequest; (IClientAPI.cs) +
-#br +
-**** ParcelBuy [#p11644bb] +
-- event ParcelBuy OnParcelBuy; (IClientAPI.cs) +
-#br +
-**** ParcelBuyPass [#r6cba307] +
-- event ParcelBuyPass OnParcelBuyPass; (IClientAPI.cs) +
-#br +
-**** RequestPayPrice [#t6a4574a] +
-- event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs) +
-#br +
- +
-**** ObjectBuy [#za335aaa] +
-- event ObjectBuy OnObjectBuy; (IClientAPI.cs) +
-- オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008) +
-- ObjectBuy(), BuyObject() は Aurora の BuySell/BuySellModule.cs で定義 +
- +
- ObjectBuy() -> MM.Transfer() => XML RPC to MS ("TransferMoney") +
-             -> BuyObject() +
- +
- +
-**** BuyObjectInventory [#d8d209f8] +
-- event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs) +
-#br +
- +
-**** LandBuy [#dbc30b84] +
-- event LandBuy OnValidateBuyLan; (ISceneEntity.cs) +
-#br +
- +
-** Calling Sequence of Functions [#r580a397] +
- +
-*** LSL [#p897f575] +
- +
-**** llGiveMoney() [#xe90a84a] +
-- Code: ObjectPays (5009) +
- +
- MM.ObjectGiveMoney() -> MM.TransferMoney()      => XML RPC to MS ("TransferMoney") +
-                     -> MM.ForceTransferMoney() => XML RPC to MS ("ForceTransferMoney") +
- +
-*** Buy Money from System [#had46589] +
-- Code: BuyMoney (5010) +
- +
- 1. VW => XML RPC to helper SC ("getCurrencyQuote") => Response to VW +
- 2. VW => XML RPC to helper SC ("buyCurrency") -> SC.add_money() => XML RPC("AddBankerMoney") => MM => XML RPC("AddBankerMoney") => MS +
-                                               => Response to VW +
-- [[XML>../currency.php#ad93a73d]] +
-#br +
- +
-*** Buy Land [#a847a4c9] +
-- Code: LandSale (5002) +
- +
-**** [[OpenSim]] [#zf9951d6+
- 1. VW => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VW +
- 2. MM.OnValidateLandBuy event -> MM.ValidateLandBuy() +
- 3. MM.OnLandBuy event -> MM.processLandBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney") +
- +
-**** [[Aurora-Sim]] [#f45ff336] +
-- OnParcelBuy event, ProcessParcelBuy() は Aurora の Land/ParcelManagementModule.cs で定義 +
- +
- 1. VW => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VW +
- 2. OnParcelBuy event -> ProcessParcelBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney") +
- +
-*** Upload Inventory [#m0b921f3] +
-**** [[OpenSim]] [#mce7bffe] +
- 1. event -> RS.NewAgentInventoryRequest() -> MM.UploadCovered() +
- 2. event -> RS.AddUploadedInventoryItem() -> MM.ApplyUploadCharge() +
- +
-- OpenSim/Region/ClientStack/Linden/Caps/BunchOfCa​ps/BunchOfCaps.cs: NewAgentInventoryRequest() +
-- OpenSim/Region/Framework/Scenes/Scene.In​ventory.cs: AddUploadedInventoryItem() +
-- %%OpenSim/Region/CoreModules/Agent/Asset​Transaction/AssetTransactionModule.cs: HandleUDPUploadRequest()%% +
-- %%OpenSim/Region/ClientStack/Linden/Caps​/NewFileAgentInventoryVariablePriceModul​e.cs: NewAgentInventoryRequest()%% +
-#br +
- +
-**** [[Aurora-Sim]] [#y70b7ce7] +
- 1. event -> AS.NewAgentInventoryRequest() -> AS.RequestUploadCovered() => XML RPC to RS ("UploadCovered") +
- 2. event -> AS.UploadCompleteHandler() -> AS.RequestUploadCharge() => XML RPC to RS ("UploadCharge") +
- +
-- TCP: OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: NewAgentInventoryRequest() +
-- TCP: OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: UploadCompleteHandler() +
-- UDP: OpenSim/Region/CoreModules/Agent/AssetTr​ansaction/AssetTransactionModule.cs: HandleUDPUploadRequest() +
-- %%OpenSim/Services/CapsService/CAPModule​s/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/AssetTr​ansaction/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 +
- +
-*** Create Group [#pc08e927] +
-**** [[OpenSim]] [#gb3010a1] +
- +
- event -> CreateGroup() -> MM.AmountCharge() +
-                       -> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge") +
-- OpenSim/Region/OptionalModules/Avatar/Xm​lRpcGroups/GroupsModule.cs: CreateGroup() +
-#br +
- +
-**** [[Aurora-Sim]] [#jf23b4a8] +
- event -> CreateGroup() -> MM.AmountCharge() +
-                       -> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge") +
-- OpenSim/Region/CoreModules/Avatar/Groups​/GroupsModule.cs: CreateGroup() +
-#br +
- +
-*** XML RPC (from MoneyServer): [#d8111c1e] +
- XML RPC from MS ("OnMoneyTransfered") => MM.OnMoneyTransferedHandler() -> money() event +
- XML RPC from MS ("UpdateBalance") => MM.BalanceUpdateHandler() => Notify to VW +
-#br +
- +
-*** XML RPC (from external script) [#f71155df] +
- XML RPC from SC ("UpdateBalance") => MM.BalanceUpdateHandler() => Notify to VW +
- XML RPC from SC ("GetBalance") => MM.GetBalanceHandler() => XML RPC to MS ("GetBalance") +
-                                                         => Response to SC +
- XML RPC from SC ("UserAlert") => MM.UserAlertHandler() => Message to VW +
- +
-- SC.AddBankerMoney: Transaction Type is BuyMoney (5010) +
-- SC.SendMoney: Transaction Type is ReferBonus (5003) +
- +
- XML RPC from SC ("AddBankerMoney") => MM.AddBankerMoneyHandler() -> MM.AddBankerMoney() => XML RPC to MS ("AddBankerMoney") => MS.handleAddBankerMoney() +
- XML RPC from SC ("SendMoney") => MM.SendMoneyHandler() -> MM.SendMoney() => XML RPC to MS ("SendMoney") +
- +
-#br +
- +
-*** XML RPC (from Aurora.Server) [#bf02abc3] +
- 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

114 user(s) are online (24 user(s) are browsing xpwiki)

Members: 0
Guests: 114

more...

Access Counter

Today : 1422814228142281422814228
Yesterday : 1615016150161501615016150
Total : 2349352123493521234935212349352123493521234935212349352123493521
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com