flagflag  If you want to see English page, please click "English" Button at Left.
1: 2012-11-26 (月) 10:26:54 iseki ソース
Line 1: Line 1:
 +** Events and delegate functions [#ddbad7ff]
 +- 略号
 +-- MM -> Money Module, MS -> Money Server, VW -> Viewer
 +-- RS -> Region(Robust) Server, US -> User(Robust) Server, SC -> External Script
 +-- AS -> Aurora Server
 +*** Upload [#q4ed8b08]
 +- 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]] [#h1be187a]
 +- OpenSim では IClientAPI.cs の event は EventManager からアクセス可
 +
 +**** MoneyTransferRequest [#v6934193]
 +- 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 [#n66750b3]
 +- event EconomyDataRequest OnEconomyDataRequest; (IClientAPI.cs)
 +#br
 +
 +**** MoneyBalanceRequest [#z9e85568]
 +- event MoneyBalanceRequest OnMoneyBalanceRequest; (IClientAPI.cs)
 +#br
 +
 +**** ParcelBuy [#sc2ab742]
 +- event ParcelBuy OnParcelBuy; (IClientAPI.cs)
 +#br
 +**** ParcelBuyPass [#s365b5ab]
 +- event ParcelBuyPass OnParcelBuyPass; (IClientAPI.cs)
 +#br
 +**** RequestPayPrice [#o5f5b9a7]
 +- event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs)
 +#br
 +**** ObjectBuy [#k8ba0193]
 +- event ObjectBuy OnObjectBuy; (IClientAPI.cs)
 +- オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008)
 +
 + MM.OnObjectBuy() -> MM.BuyObject()
 +                 -> MM.Transfer() => XML RPC to MS ("TransferMoney")
 +**** BuyObjectInventory [#nbc74665]
 +- event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs)
 +#br
 +**** MoneyTransferEvent [#r8ba581d]
 +- event MoneyTransferEvent OnMoneyTransfer; (EventManager.cs)
 +#br
 +**** LandBuy [#w118bafa]
 +- event LandBuy OnValidateLandBuy; (EventManager.cs)
 +- event LandBuy OnLandBuy; (EventManager.cs)
 +#br
 +
 +*** Events of [[Aurora-Sim]] [#maf53275]
 +
 +**** MoneyTransferRequest [#m289cd83]
 +- 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 [#w1e4235c]
 +- event EconomyDataRequest OnEconomyDataRequest; (IClientAPI.cs)
 +#br
 +**** MoneyBalanceRequest [#f5c63c00]
 +- event MoneyBalanceRequest OnMoneyBalanceRequest; (IClientAPI.cs)
 +#br
 +**** ParcelBuy [#b4471bdf]
 +- event ParcelBuy OnParcelBuy; (IClientAPI.cs)
 +#br
 +**** ParcelBuyPass [#u466718e]
 +- event ParcelBuyPass OnParcelBuyPass; (IClientAPI.cs)
 +#br
 +**** RequestPayPrice [#s5ddf548]
 +- event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs)
 +#br
 +
 +**** ObjectBuy [#ef8a0c53]
 +- event ObjectBuy OnObjectBuy; (IClientAPI.cs)
 +- オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008)
 +- ObjectBuy(), BuyObject() は Aurora の BuySell/BuySellModule.cs で定義
 +
 + ObjectBuy() -> MM.Transfer() => XML RPC to MS ("TransferMoney")
 +             -> BuyObject()
 +
 +
 +**** BuyObjectInventory [#t5e25a35]
 +- event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs)
 +#br
 +
 +**** LandBuy [#be10ec33]
 +- event LandBuy OnValidateBuyLan; (ISceneEntity.cs)
 +#br
 +
 +** Calling Sequence of Functions [#l66a8cdf]
 +
 +*** LSL [#bf809af9]
 +
 +**** llGiveMoney() [#s5a527b3]
 +- Code: ObjectPays (5009)
 +
 + MM.ObjectGiveMoney() -> MM.TransferMoney()      => XML RPC to MS ("TransferMoney")
 +                     -> MM.ForceTransferMoney() => XML RPC to MS ("ForceTransferMoney")
 +
 +*** Buy Money from System [#h61acd3d]
 +- 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 [#n4a0df9d]
 +- Code: LandSale (5002)
 +
 +**** [[OpenSim]] [#i04a27d9]
 + 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]] [#nb86a7e3]
 +- 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 [#of53fb6b]
 +**** [[OpenSim]] [#v20e740b]
 + 1. event -> RS.NewAgentInventoryRequest() -> MM.UploadCovered()
 + 2. event -> RS.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]] [#l3a2477e]
 + 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 [#h4ccd93a]
 +**** [[OpenSim]] [#va18a003]
 +
 + 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]] [#u2979e38]
 + 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): [#q1135f89]
 + 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) [#z94867d7]
 + 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) [#m1c47cbe]
 + 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


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新の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
<今日>

オンライン状況

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

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

もっと...

アクセスカウンタ

今日 : 2008320083200832008320083
昨日 : 1795517955179551795517955
総計 : 2337906023379060233790602337906023379060233790602337906023379060
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com