1: 2012-11-26 (月) 10:26:25 iseki |
2: 2012-11-26 (月) 11:21:04 iseki |
| -- 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/BunchOfCaps/BunchOfCaps.cs | |
- | -- NewAgentInventoryRequest() --> UploadCovered() | |
- | -- UploadCompleteHandler() --> | |
- | --- OpenSim/Region/Framework/Scenes/Scene.Inventory.cs:AddUploadedInventoryItem() --> ApplyUploadCharge() | |
- | | |
- | -OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs | |
- | -- NewAgentInventoryRequest() --> UploadCovered() | |
- | | |
- | - OpenSim/Region/CoreModules/Agent/AssetTransaction/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") |
| - 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) |
| #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] |
| | | |
| 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 |
| | | |
| - 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. OnParcelBuy event -> ProcessParcelBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney") | |
| | | |
| *** 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/BunchOfCaps/BunchOfCaps.cs: NewAgentInventoryRequest() | + | - OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs |
- | - OpenSim/Region/Framework/Scenes/Scene.Inventory.cs: AddUploadedInventoryItem() | + | -- NewAgentInventoryRequest() --> UploadCovered() |
- | - %%OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs: HandleUDPUploadRequest()%% | + | -- UploadCompleteHandler() --> |
- | - %%OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs: NewAgentInventoryRequest()%% | + | --- OpenSim/Region/Framework/Scenes/Scene.Inventory.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/AssetTransaction/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/CAPModules/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/LLLoginResponse.cs での LLLoginResponseクラスのコンストラクタ LLLoginResponse(...) で SeedCapability = destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath); を追加する. | + | |
- | -- 上記の手法により,seed_capability を強制的に Regionサーバにすることは可能. | + | |
- | -- この場合,OpenSim/Region/CoreModules/Agent/AssetTransaction/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.CapsPath); | + | |
- | } | + | |
- | + Robust サーバ(Aurora.Server) から Regionサーバの MoneyModule を呼び出す. | + | |
- | -- penSim/Services/CapsService/CAPModules/InventoryCAPS.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/XmlRpcGroups/GroupsModule.cs: CreateGroup() | | - OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/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 |
| | | |
| 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 |