flagflag  
12: 2011-09-10 (Sat) 04:21:45 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, VR -> Viewer +- [[Aurora-Sim>./AuroraSim]]
--- RS -> Region(Robust) Server, US -> User(Robust) Server, SC -> External Script +
- +
-*** 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) +
-#br +
- +
-**** LandBuy [#r0ef7e52] +
-- 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. VR => XML RPC to helper SC ("getCurrencyQuote") => Response to VR +
- 2. VR => XML RPC to helper SC ("buyCurrency") -> SC.add_money() => XML RPC to MM ("AddBankerMoney") => ... +
-                                               => Response to VR +
- +
-*** Buy Land [#a847a4c9] +
-- Code: LandSale (5002) +
- +
-**** [[OpenSim]] [#zf9951d6+
- 1. VR => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VR +
- 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. VR => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VR +
- 2. OnParcelBuy event -> ProcessParcelBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney") +
- +
-*** Upload Inventory [#m0b921f3] +
-**** OpenSim [#mce7bffe] +
- 1. event -> OBunchOfCaps/BunchOfCaps.cs: NewAgentInventoryRequest() -> MM.UploadCovered() +
- 2. event -> Scenes/Scene.Inventory.cs: AddUploadedInventoryItem() -> MM.ApplyUploadCharge() +
- +
-- OpenSim/Region/ClientStack/Linden/Caps/B​unchOfCaps/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. CAPModules/InventoryCAPS.cs: NewAgentInventoryRequest() -> RequestUploadCovered() => XML RPC to RS ("UploadCovered") +
- 2. CAPModules/InventoryCAPS.cs: UploadCompleteHandler() -> 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 サーバが指定される(OpenSim では Regionサーバ) +
-- 従って,Uoload では Regionサーバでイベントが発生せず,Robustサーバでイベントが発生する. +
- +
-+ Robust サーバに 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 サーバから Regionサーバの MoneyModuleを呼び出す. +
--- penSim/Services/CapsService/CAPModules/I​nventoryCAPS.cs 内でトリガーされる関数から XML RPCを使用して Regionサーバにアクセス. +
--- この手法を採用!! +
-#br +
- +
-*** Create Group [#pc08e927] +
-- OpenSim +
- +
- event -> XmlRpcGroups/GroupsModule.cs: CreateGroup() -> MM.AmountCharge() +
-                                                     -> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge") +
-- Aurora-Sim +
- +
- event -> Groups/GroupsModule.cs: CreateGroup() -> MM.AmountCharge() +
-                                               -> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge") +
-#br +
- +
-*** XML RPC (from MoneyServer): [#d8111c1e] +
- XML RPC from MS ("OnMoneyTransfered") => MM.OnMoneyTransferedHandler() => Response to MS => Notify to VR +
- XML RPC from MS ("UpdateBalance")    => MM.BalanceUpdateHandler()    => Response to MS => Notify to VR +
- XML RPC from MS ("UserAlert")        => MM.UserAlertHandler()        => Response to MS => Message to VR +
- XML RPC from MS ("SendConfirmLink")  => MM.SendConfirmLinkHandler()  => Response to MS => Message to VR (not used) +
- XML RPC from MS ("GetBalance")        => MM.GetBalanceHandler()        => Response to MS +
- +
-#br +
- +
-*** XML RPC (from external script) [#f71155df] +
--  通常は VR -> SC -> MM -> MS となる. +
-- SC.AddBankerMoney: (BuyMoney: 5010) +
-- SC.SendMoney: (ReferBonus: 5003) +
- +
- XML RPC from SC ("AddBankerMoney") => MM.AddBankerMoneyHandler() -> MM.AddBankerMoney() => XML RPC to MS ("AddBankerMoney") +
- XML RPC from SC ("SendMoney") => MM.SendMoneyHandler() -> MM.SendMoney() => XML RPC to MS ("SendMoney") +
- +
- +
-#br+
#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

41 user(s) are online (5 user(s) are browsing xpwiki)

Members: 0
Guests: 41

more...

Access Counter

Today : 3571357135713571
Yesterday : 5790579057905790
Total : 2365636723656367236563672365636723656367236563672365636723656367
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com