flagflag  If you want to see English page, please click "English" Button at Left.
18: 2012-11-21 (水) 17:02:23 iseki ソース 現: 2012-11-26 (月) 10:27:54 iseki ソース
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


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

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 4月翌月
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
<今日>

オンライン状況

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

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

もっと...

アクセスカウンタ

今日 : 8400840084008400
昨日 : 1406514065140651406514065
総計 : 2334942223349422233494222334942223349422233494222334942223349422
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com