This commit is contained in:
watrabi
2025-09-18 17:55:52 -04:00
commit 977f1ff4b8
15030 changed files with 17324420 additions and 0 deletions
@@ -0,0 +1,263 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
###################
# compiled source #
###################
*.com
*.class
*.dll
*.exe
*.pdb
*.dll.config
*.cache
*.suo
# Include dlls if theyre in the NuGet packages directory
!/packages/*/lib/*.dll
# Include dlls if they're in the CommonReferences directory
!*CommonReferences/*.dll
####################
# VS Upgrade stuff #
####################
_UpgradeReport_Files/
###############
# Directories #
###############
bin/
obj/
TestResults/
###################
# Web publish log #
###################
*.Publish.xml
#############
# Resharper #
#############
/_ReSharper.*
*.ReSharper.*
############
# Packages #
############
# its better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
######################
# Logs and databases #
######################
*.log
*.sqlite
# OS generated files #
######################
.DS_Store?
ehthumbs.db
Icon?
Thumbs.db
# User-specific files
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
# Visual Studo 2015 cache/options directory
.vs/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
bower_components/
orleans.codegen.cs
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
@@ -0,0 +1,565 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Roblox.Grid.Arbiter.Common.Arbiter
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace = "http://roblox.com/", ConfigurationName = "Roblox.Grid.Arbiter.Common.Arbiter.Arbiter")]
public interface Arbiter
{
[System.ServiceModel.OperationContractAttribute(Action = "http://roblox.com/Arbiter/GetStatsEx", ReplyAction = "http://roblox.com/Arbiter/GetStatsExResponse")]
string GetStatsEx(bool clearExceptions);
[System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://roblox.com/Arbiter/GetStatsEx", ReplyAction = "http://roblox.com/Arbiter/GetStatsExResponse")]
System.IAsyncResult BeginGetStatsEx(bool clearExceptions, System.AsyncCallback callback, object asyncState);
string EndGetStatsEx(System.IAsyncResult result);
[System.ServiceModel.OperationContractAttribute(Action = "http://roblox.com/Arbiter/GetStats", ReplyAction = "http://roblox.com/Arbiter/GetStatsResponse")]
string GetStats();
[System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://roblox.com/Arbiter/GetStats", ReplyAction = "http://roblox.com/Arbiter/GetStatsResponse")]
System.IAsyncResult BeginGetStats(System.AsyncCallback callback, object asyncState);
string EndGetStats(System.IAsyncResult result);
[System.ServiceModel.OperationContractAttribute(Action = "http://roblox.com/Arbiter/SetMultiProcess", ReplyAction = "http://roblox.com/Arbiter/SetMultiProcessResponse")]
void SetMultiProcess(bool value);
[System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://roblox.com/Arbiter/SetMultiProcess", ReplyAction = "http://roblox.com/Arbiter/SetMultiProcessResponse")]
System.IAsyncResult BeginSetMultiProcess(bool value, System.AsyncCallback callback, object asyncState);
void EndSetMultiProcess(System.IAsyncResult result);
[System.ServiceModel.OperationContractAttribute(Action = "http://roblox.com/Arbiter/SetRecycleProcess", ReplyAction = "http://roblox.com/Arbiter/SetRecycleProcessResponse")]
void SetRecycleProcess(bool value);
[System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://roblox.com/Arbiter/SetRecycleProcess", ReplyAction = "http://roblox.com/Arbiter/SetRecycleProcessResponse")]
System.IAsyncResult BeginSetRecycleProcess(bool value, System.AsyncCallback callback, object asyncState);
void EndSetRecycleProcess(System.IAsyncResult result);
[System.ServiceModel.OperationContractAttribute(Action = "http://roblox.com/Arbiter/SetThreadConfigScript", ReplyAction = "http://roblox.com/Arbiter/SetThreadConfigScriptResponse")]
void SetThreadConfigScript(string script, bool broadcast);
[System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://roblox.com/Arbiter/SetThreadConfigScript", ReplyAction = "http://roblox.com/Arbiter/SetThreadConfigScriptResponse")]
System.IAsyncResult BeginSetThreadConfigScript(string script, bool broadcast, System.AsyncCallback callback, object asyncState);
void EndSetThreadConfigScript(System.IAsyncResult result);
[System.ServiceModel.OperationContractAttribute(Action = "http://roblox.com/Arbiter/SetRecycleQueueSize", ReplyAction = "http://roblox.com/Arbiter/SetRecycleQueueSizeResponse")]
void SetRecycleQueueSize(int value);
[System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://roblox.com/Arbiter/SetRecycleQueueSize", ReplyAction = "http://roblox.com/Arbiter/SetRecycleQueueSizeResponse")]
System.IAsyncResult BeginSetRecycleQueueSize(int value, System.AsyncCallback callback, object asyncState);
void EndSetRecycleQueueSize(System.IAsyncResult result);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface ArbiterChannel : Roblox.Grid.Arbiter.Common.Arbiter.Arbiter, System.ServiceModel.IClientChannel
{
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class GetStatsExCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
private object[] results;
public GetStatsExCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
this.results = results;
}
public string Result
{
get
{
base.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class GetStatsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
private object[] results;
public GetStatsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
this.results = results;
}
public string Result
{
get
{
base.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class ArbiterClient : System.ServiceModel.ClientBase<Roblox.Grid.Arbiter.Common.Arbiter.Arbiter>, Roblox.Grid.Arbiter.Common.Arbiter.Arbiter
{
private BeginOperationDelegate onBeginGetStatsExDelegate;
private EndOperationDelegate onEndGetStatsExDelegate;
private System.Threading.SendOrPostCallback onGetStatsExCompletedDelegate;
private BeginOperationDelegate onBeginGetStatsDelegate;
private EndOperationDelegate onEndGetStatsDelegate;
private System.Threading.SendOrPostCallback onGetStatsCompletedDelegate;
private BeginOperationDelegate onBeginSetMultiProcessDelegate;
private EndOperationDelegate onEndSetMultiProcessDelegate;
private System.Threading.SendOrPostCallback onSetMultiProcessCompletedDelegate;
private BeginOperationDelegate onBeginSetRecycleProcessDelegate;
private EndOperationDelegate onEndSetRecycleProcessDelegate;
private System.Threading.SendOrPostCallback onSetRecycleProcessCompletedDelegate;
private BeginOperationDelegate onBeginSetThreadConfigScriptDelegate;
private EndOperationDelegate onEndSetThreadConfigScriptDelegate;
private System.Threading.SendOrPostCallback onSetThreadConfigScriptCompletedDelegate;
private BeginOperationDelegate onBeginSetRecycleQueueSizeDelegate;
private EndOperationDelegate onEndSetRecycleQueueSizeDelegate;
private System.Threading.SendOrPostCallback onSetRecycleQueueSizeCompletedDelegate;
public ArbiterClient()
{
}
public ArbiterClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
public ArbiterClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public ArbiterClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public ArbiterClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress)
{
}
public event System.EventHandler<GetStatsExCompletedEventArgs> GetStatsExCompleted;
public event System.EventHandler<GetStatsCompletedEventArgs> GetStatsCompleted;
public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> SetMultiProcessCompleted;
public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> SetRecycleProcessCompleted;
public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> SetThreadConfigScriptCompleted;
public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> SetRecycleQueueSizeCompleted;
public string GetStatsEx(bool clearExceptions)
{
return base.Channel.GetStatsEx(clearExceptions);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public System.IAsyncResult BeginGetStatsEx(bool clearExceptions, System.AsyncCallback callback, object asyncState)
{
return base.Channel.BeginGetStatsEx(clearExceptions, callback, asyncState);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public string EndGetStatsEx(System.IAsyncResult result)
{
return base.Channel.EndGetStatsEx(result);
}
private System.IAsyncResult OnBeginGetStatsEx(object[] inValues, System.AsyncCallback callback, object asyncState)
{
bool clearExceptions = ((bool)(inValues[0]));
return this.BeginGetStatsEx(clearExceptions, callback, asyncState);
}
private object[] OnEndGetStatsEx(System.IAsyncResult result)
{
string retVal = this.EndGetStatsEx(result);
return new object[] {
retVal};
}
private void OnGetStatsExCompleted(object state)
{
if ((this.GetStatsExCompleted != null))
{
InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
this.GetStatsExCompleted(this, new GetStatsExCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
}
}
public void GetStatsExAsync(bool clearExceptions)
{
this.GetStatsExAsync(clearExceptions, null);
}
public void GetStatsExAsync(bool clearExceptions, object userState)
{
if ((this.onBeginGetStatsExDelegate == null))
{
this.onBeginGetStatsExDelegate = new BeginOperationDelegate(this.OnBeginGetStatsEx);
}
if ((this.onEndGetStatsExDelegate == null))
{
this.onEndGetStatsExDelegate = new EndOperationDelegate(this.OnEndGetStatsEx);
}
if ((this.onGetStatsExCompletedDelegate == null))
{
this.onGetStatsExCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetStatsExCompleted);
}
base.InvokeAsync(this.onBeginGetStatsExDelegate, new object[] {
clearExceptions}, this.onEndGetStatsExDelegate, this.onGetStatsExCompletedDelegate, userState);
}
public string GetStats()
{
return base.Channel.GetStats();
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public System.IAsyncResult BeginGetStats(System.AsyncCallback callback, object asyncState)
{
return base.Channel.BeginGetStats(callback, asyncState);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public string EndGetStats(System.IAsyncResult result)
{
return base.Channel.EndGetStats(result);
}
private System.IAsyncResult OnBeginGetStats(object[] inValues, System.AsyncCallback callback, object asyncState)
{
return this.BeginGetStats(callback, asyncState);
}
private object[] OnEndGetStats(System.IAsyncResult result)
{
string retVal = this.EndGetStats(result);
return new object[] {
retVal};
}
private void OnGetStatsCompleted(object state)
{
if ((this.GetStatsCompleted != null))
{
InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
this.GetStatsCompleted(this, new GetStatsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
}
}
public void GetStatsAsync()
{
this.GetStatsAsync(null);
}
public void GetStatsAsync(object userState)
{
if ((this.onBeginGetStatsDelegate == null))
{
this.onBeginGetStatsDelegate = new BeginOperationDelegate(this.OnBeginGetStats);
}
if ((this.onEndGetStatsDelegate == null))
{
this.onEndGetStatsDelegate = new EndOperationDelegate(this.OnEndGetStats);
}
if ((this.onGetStatsCompletedDelegate == null))
{
this.onGetStatsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetStatsCompleted);
}
base.InvokeAsync(this.onBeginGetStatsDelegate, null, this.onEndGetStatsDelegate, this.onGetStatsCompletedDelegate, userState);
}
public void SetMultiProcess(bool value)
{
base.Channel.SetMultiProcess(value);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public System.IAsyncResult BeginSetMultiProcess(bool value, System.AsyncCallback callback, object asyncState)
{
return base.Channel.BeginSetMultiProcess(value, callback, asyncState);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public void EndSetMultiProcess(System.IAsyncResult result)
{
base.Channel.EndSetMultiProcess(result);
}
private System.IAsyncResult OnBeginSetMultiProcess(object[] inValues, System.AsyncCallback callback, object asyncState)
{
bool value = ((bool)(inValues[0]));
return this.BeginSetMultiProcess(value, callback, asyncState);
}
private object[] OnEndSetMultiProcess(System.IAsyncResult result)
{
this.EndSetMultiProcess(result);
return null;
}
private void OnSetMultiProcessCompleted(object state)
{
if ((this.SetMultiProcessCompleted != null))
{
InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
this.SetMultiProcessCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
}
}
public void SetMultiProcessAsync(bool value)
{
this.SetMultiProcessAsync(value, null);
}
public void SetMultiProcessAsync(bool value, object userState)
{
if ((this.onBeginSetMultiProcessDelegate == null))
{
this.onBeginSetMultiProcessDelegate = new BeginOperationDelegate(this.OnBeginSetMultiProcess);
}
if ((this.onEndSetMultiProcessDelegate == null))
{
this.onEndSetMultiProcessDelegate = new EndOperationDelegate(this.OnEndSetMultiProcess);
}
if ((this.onSetMultiProcessCompletedDelegate == null))
{
this.onSetMultiProcessCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSetMultiProcessCompleted);
}
base.InvokeAsync(this.onBeginSetMultiProcessDelegate, new object[] {
value}, this.onEndSetMultiProcessDelegate, this.onSetMultiProcessCompletedDelegate, userState);
}
public void SetRecycleProcess(bool value)
{
base.Channel.SetRecycleProcess(value);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public System.IAsyncResult BeginSetRecycleProcess(bool value, System.AsyncCallback callback, object asyncState)
{
return base.Channel.BeginSetRecycleProcess(value, callback, asyncState);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public void EndSetRecycleProcess(System.IAsyncResult result)
{
base.Channel.EndSetRecycleProcess(result);
}
private System.IAsyncResult OnBeginSetRecycleProcess(object[] inValues, System.AsyncCallback callback, object asyncState)
{
bool value = ((bool)(inValues[0]));
return this.BeginSetRecycleProcess(value, callback, asyncState);
}
private object[] OnEndSetRecycleProcess(System.IAsyncResult result)
{
this.EndSetRecycleProcess(result);
return null;
}
private void OnSetRecycleProcessCompleted(object state)
{
if ((this.SetRecycleProcessCompleted != null))
{
InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
this.SetRecycleProcessCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
}
}
public void SetRecycleProcessAsync(bool value)
{
this.SetRecycleProcessAsync(value, null);
}
public void SetRecycleProcessAsync(bool value, object userState)
{
if ((this.onBeginSetRecycleProcessDelegate == null))
{
this.onBeginSetRecycleProcessDelegate = new BeginOperationDelegate(this.OnBeginSetRecycleProcess);
}
if ((this.onEndSetRecycleProcessDelegate == null))
{
this.onEndSetRecycleProcessDelegate = new EndOperationDelegate(this.OnEndSetRecycleProcess);
}
if ((this.onSetRecycleProcessCompletedDelegate == null))
{
this.onSetRecycleProcessCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSetRecycleProcessCompleted);
}
base.InvokeAsync(this.onBeginSetRecycleProcessDelegate, new object[] {
value}, this.onEndSetRecycleProcessDelegate, this.onSetRecycleProcessCompletedDelegate, userState);
}
public void SetThreadConfigScript(string script, bool broadcast)
{
base.Channel.SetThreadConfigScript(script, broadcast);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public System.IAsyncResult BeginSetThreadConfigScript(string script, bool broadcast, System.AsyncCallback callback, object asyncState)
{
return base.Channel.BeginSetThreadConfigScript(script, broadcast, callback, asyncState);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public void EndSetThreadConfigScript(System.IAsyncResult result)
{
base.Channel.EndSetThreadConfigScript(result);
}
private System.IAsyncResult OnBeginSetThreadConfigScript(object[] inValues, System.AsyncCallback callback, object asyncState)
{
string script = ((string)(inValues[0]));
bool broadcast = ((bool)(inValues[1]));
return this.BeginSetThreadConfigScript(script, broadcast, callback, asyncState);
}
private object[] OnEndSetThreadConfigScript(System.IAsyncResult result)
{
this.EndSetThreadConfigScript(result);
return null;
}
private void OnSetThreadConfigScriptCompleted(object state)
{
if ((this.SetThreadConfigScriptCompleted != null))
{
InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
this.SetThreadConfigScriptCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
}
}
public void SetThreadConfigScriptAsync(string script, bool broadcast)
{
this.SetThreadConfigScriptAsync(script, broadcast, null);
}
public void SetThreadConfigScriptAsync(string script, bool broadcast, object userState)
{
if ((this.onBeginSetThreadConfigScriptDelegate == null))
{
this.onBeginSetThreadConfigScriptDelegate = new BeginOperationDelegate(this.OnBeginSetThreadConfigScript);
}
if ((this.onEndSetThreadConfigScriptDelegate == null))
{
this.onEndSetThreadConfigScriptDelegate = new EndOperationDelegate(this.OnEndSetThreadConfigScript);
}
if ((this.onSetThreadConfigScriptCompletedDelegate == null))
{
this.onSetThreadConfigScriptCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSetThreadConfigScriptCompleted);
}
base.InvokeAsync(this.onBeginSetThreadConfigScriptDelegate, new object[] {
script,
broadcast}, this.onEndSetThreadConfigScriptDelegate, this.onSetThreadConfigScriptCompletedDelegate, userState);
}
public void SetRecycleQueueSize(int value)
{
base.Channel.SetRecycleQueueSize(value);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public System.IAsyncResult BeginSetRecycleQueueSize(int value, System.AsyncCallback callback, object asyncState)
{
return base.Channel.BeginSetRecycleQueueSize(value, callback, asyncState);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public void EndSetRecycleQueueSize(System.IAsyncResult result)
{
base.Channel.EndSetRecycleQueueSize(result);
}
private System.IAsyncResult OnBeginSetRecycleQueueSize(object[] inValues, System.AsyncCallback callback, object asyncState)
{
int value = ((int)(inValues[0]));
return this.BeginSetRecycleQueueSize(value, callback, asyncState);
}
private object[] OnEndSetRecycleQueueSize(System.IAsyncResult result)
{
this.EndSetRecycleQueueSize(result);
return null;
}
private void OnSetRecycleQueueSizeCompleted(object state)
{
if ((this.SetRecycleQueueSizeCompleted != null))
{
InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
this.SetRecycleQueueSizeCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
}
}
public void SetRecycleQueueSizeAsync(int value)
{
this.SetRecycleQueueSizeAsync(value, null);
}
public void SetRecycleQueueSizeAsync(int value, object userState)
{
if ((this.onBeginSetRecycleQueueSizeDelegate == null))
{
this.onBeginSetRecycleQueueSizeDelegate = new BeginOperationDelegate(this.OnBeginSetRecycleQueueSize);
}
if ((this.onEndSetRecycleQueueSizeDelegate == null))
{
this.onEndSetRecycleQueueSizeDelegate = new EndOperationDelegate(this.OnEndSetRecycleQueueSize);
}
if ((this.onSetRecycleQueueSizeCompletedDelegate == null))
{
this.onSetRecycleQueueSizeCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSetRecycleQueueSizeCompleted);
}
base.InvokeAsync(this.onBeginSetRecycleQueueSizeDelegate, new object[] {
value}, this.onEndSetRecycleQueueSizeDelegate, this.onSetRecycleQueueSizeCompletedDelegate, userState);
}
}
}
@@ -0,0 +1,14 @@
using Roblox.Grid.Arbiter.Common.Arbiter;
namespace Roblox.Grid.Arbiter.Common
{
public class ArbiterServiceUtils
{
public static ArbiterClient GetService(string Address) => GetService(Address, 64990);
public static ArbiterClient GetService(string Address, int port)
{
if (Address == null) return null;
return new ArbiterClient("RccServiceMonitor", "http://" + Address + ":" + port.ToString());
}
}
}
@@ -0,0 +1,163 @@
using System;
using System.IO;
using System.Xml;
using System.Text;
using System.Collections;
using System.Collections.Generic;
namespace Roblox.Grid.Arbiter.Common
{
public class ArbiterStats : IEnumerable<ArbiterStats.Stat>, IEnumerable
{
IEnumerator IEnumerable.GetEnumerator()
{
foreach (var stat in stats)
yield return stat;
}
IEnumerator<Stat> IEnumerable<Stat>.GetEnumerator()
{
foreach (var stat in stats)
yield return stat;
}
public ArbiterStats()
{
stats = new List<Stat>();
}
public ArbiterStats(string source)
: this()
{
var xmlReader = XmlReader.Create(new StringReader(source));
while (xmlReader.Read())
{
if (!(xmlReader.Name != "Stat"))
{
var stat = default(Stat);
xmlReader.MoveToFirstAttribute();
do
{
if (xmlReader.Name == "Name")
stat.name = xmlReader.Value;
else if (xmlReader.Name == "Value")
stat.value = xmlReader.Value;
}
while (xmlReader.MoveToNextAttribute());
if (stat.name != null && stat.value != null)
stats.Add(stat);
}
}
}
public void AddStat(string name, string value)
{
stats.Add(new ArbiterStats.Stat(name, value));
}
public void AddStat(string name, int value)
{
stats.Add(new ArbiterStats.Stat(name, value.ToString()));
}
public void AddStat(string name, long value)
{
stats.Add(new ArbiterStats.Stat(name, value.ToString()));
}
public void AddStat(string name, double value)
{
stats.Add(new ArbiterStats.Stat(name, value.ToString()));
}
public void AddStat(string name, bool value)
{
stats.Add(new ArbiterStats.Stat(name, value.ToString()));
}
public string GetStat(string name)
{
foreach (var stat in this)
if (stat.name == name)
return stat.value;
throw new Exception("Stat " + name + " is missing");
}
public int GetStatInt(string name)
{
var stat = GetStat(name);
if (int.TryParse(stat, out var result))
return result;
Console.WriteLine("Stat " + name + " was malformed: " + stat);
return 0;
}
public long GetStatLong(string name)
{
var stat = GetStat(name);
if (long.TryParse(stat, out var result))
return result;
Console.WriteLine("Stat " + name + " was malformed: " + stat);
return 0;
}
public double GetStatDouble(string name)
{
var stat = GetStat(name);
if (double.TryParse(stat, out var result))
return result;
Console.WriteLine("Stat " + name + " was malformed: " + stat);
return 0;
}
public override string ToString()
{
var stringBuilder = new StringBuilder();
foreach (var stat in this)
stringBuilder.Append(stat.name + ": " + stat.value + "\r\n");
return stringBuilder.ToString();
}
public string ToXml()
{
var stringBuilder = new StringBuilder();
var xmlWriter = XmlWriter.Create(stringBuilder);
xmlWriter.WriteStartElement("Stats");
foreach (var stat in this)
WriteStat(xmlWriter, stat);
xmlWriter.WriteEndElement();
xmlWriter.Close();
return stringBuilder.ToString();
}
protected static void WriteStat(XmlWriter writer, ArbiterStats.Stat stat)
{
writer.WriteStartElement("Stat");
writer.WriteStartAttribute("Name");
writer.WriteString(stat.name);
writer.WriteEndAttribute();
writer.WriteStartAttribute("Value");
writer.WriteString(stat.value);
writer.WriteEndAttribute();
writer.WriteEndElement();
}
private List<Stat> stats;
public struct Stat
{
internal Stat(string name, string value)
{
this.name = name;
this.value = value;
}
public string name;
public string value;
}
}
}
@@ -0,0 +1,33 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Roblox.Grid.Arbiter.Common")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("Roblox.Grid.Arbiter.Common")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("637353c1-acd0-4145-8bcb-07fb3be73df7")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,58 @@
using System;
using System.CodeDom.Compiler;
using System.ServiceModel;
namespace Roblox.Grid.Arbiter.Common.Arbiter;
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
[ServiceContract(Namespace = "http://roblox.com/", ConfigurationName = "Roblox.Grid.Arbiter.Common.Arbiter.Arbiter")]
public interface Arbiter
{
[OperationContract(Action = "http://roblox.com/Arbiter/GetStatsEx", ReplyAction = "http://roblox.com/Arbiter/GetStatsExResponse")]
string GetStatsEx(bool clearExceptions);
[OperationContract(AsyncPattern = true, Action = "http://roblox.com/Arbiter/GetStatsEx", ReplyAction = "http://roblox.com/Arbiter/GetStatsExResponse")]
IAsyncResult BeginGetStatsEx(bool clearExceptions, AsyncCallback callback, object asyncState);
string EndGetStatsEx(IAsyncResult result);
[OperationContract(Action = "http://roblox.com/Arbiter/GetStats", ReplyAction = "http://roblox.com/Arbiter/GetStatsResponse")]
string GetStats();
[OperationContract(AsyncPattern = true, Action = "http://roblox.com/Arbiter/GetStats", ReplyAction = "http://roblox.com/Arbiter/GetStatsResponse")]
IAsyncResult BeginGetStats(AsyncCallback callback, object asyncState);
string EndGetStats(IAsyncResult result);
[OperationContract(Action = "http://roblox.com/Arbiter/SetMultiProcess", ReplyAction = "http://roblox.com/Arbiter/SetMultiProcessResponse")]
void SetMultiProcess(bool value);
[OperationContract(AsyncPattern = true, Action = "http://roblox.com/Arbiter/SetMultiProcess", ReplyAction = "http://roblox.com/Arbiter/SetMultiProcessResponse")]
IAsyncResult BeginSetMultiProcess(bool value, AsyncCallback callback, object asyncState);
void EndSetMultiProcess(IAsyncResult result);
[OperationContract(Action = "http://roblox.com/Arbiter/SetRecycleProcess", ReplyAction = "http://roblox.com/Arbiter/SetRecycleProcessResponse")]
void SetRecycleProcess(bool value);
[OperationContract(AsyncPattern = true, Action = "http://roblox.com/Arbiter/SetRecycleProcess", ReplyAction = "http://roblox.com/Arbiter/SetRecycleProcessResponse")]
IAsyncResult BeginSetRecycleProcess(bool value, AsyncCallback callback, object asyncState);
void EndSetRecycleProcess(IAsyncResult result);
[OperationContract(Action = "http://roblox.com/Arbiter/SetThreadConfigScript", ReplyAction = "http://roblox.com/Arbiter/SetThreadConfigScriptResponse")]
void SetThreadConfigScript(string script, bool broadcast);
[OperationContract(AsyncPattern = true, Action = "http://roblox.com/Arbiter/SetThreadConfigScript", ReplyAction = "http://roblox.com/Arbiter/SetThreadConfigScriptResponse")]
IAsyncResult BeginSetThreadConfigScript(string script, bool broadcast, AsyncCallback callback, object asyncState);
void EndSetThreadConfigScript(IAsyncResult result);
[OperationContract(Action = "http://roblox.com/Arbiter/SetRecycleQueueSize", ReplyAction = "http://roblox.com/Arbiter/SetRecycleQueueSizeResponse")]
void SetRecycleQueueSize(int value);
[OperationContract(AsyncPattern = true, Action = "http://roblox.com/Arbiter/SetRecycleQueueSize", ReplyAction = "http://roblox.com/Arbiter/SetRecycleQueueSizeResponse")]
IAsyncResult BeginSetRecycleQueueSize(int value, AsyncCallback callback, object asyncState);
void EndSetRecycleQueueSize(IAsyncResult result);
}
@@ -0,0 +1,11 @@
using System;
using System.CodeDom.Compiler;
using System.ServiceModel;
using System.ServiceModel.Channels;
namespace Roblox.Grid.Arbiter.Common.Arbiter;
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
public interface ArbiterChannel : Arbiter, IClientChannel, IContextChannel, IChannel, ICommunicationObject, IExtensibleObject<IContextChannel>, IDisposable
{
}
@@ -0,0 +1,446 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Threading;
namespace Roblox.Grid.Arbiter.Common.Arbiter;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
public class ArbiterClient : ClientBase<Arbiter>, Arbiter
{
private BeginOperationDelegate onBeginGetStatsExDelegate;
private EndOperationDelegate onEndGetStatsExDelegate;
private SendOrPostCallback onGetStatsExCompletedDelegate;
private BeginOperationDelegate onBeginGetStatsDelegate;
private EndOperationDelegate onEndGetStatsDelegate;
private SendOrPostCallback onGetStatsCompletedDelegate;
private BeginOperationDelegate onBeginSetMultiProcessDelegate;
private EndOperationDelegate onEndSetMultiProcessDelegate;
private SendOrPostCallback onSetMultiProcessCompletedDelegate;
private BeginOperationDelegate onBeginSetRecycleProcessDelegate;
private EndOperationDelegate onEndSetRecycleProcessDelegate;
private SendOrPostCallback onSetRecycleProcessCompletedDelegate;
private BeginOperationDelegate onBeginSetThreadConfigScriptDelegate;
private EndOperationDelegate onEndSetThreadConfigScriptDelegate;
private SendOrPostCallback onSetThreadConfigScriptCompletedDelegate;
private BeginOperationDelegate onBeginSetRecycleQueueSizeDelegate;
private EndOperationDelegate onEndSetRecycleQueueSizeDelegate;
private SendOrPostCallback onSetRecycleQueueSizeCompletedDelegate;
public event EventHandler<GetStatsExCompletedEventArgs> GetStatsExCompleted;
public event EventHandler<GetStatsCompletedEventArgs> GetStatsCompleted;
public event EventHandler<AsyncCompletedEventArgs> SetMultiProcessCompleted;
public event EventHandler<AsyncCompletedEventArgs> SetRecycleProcessCompleted;
public event EventHandler<AsyncCompletedEventArgs> SetThreadConfigScriptCompleted;
public event EventHandler<AsyncCompletedEventArgs> SetRecycleQueueSizeCompleted;
public ArbiterClient()
{
}
public ArbiterClient(string endpointConfigurationName)
: base(endpointConfigurationName)
{
}
public ArbiterClient(string endpointConfigurationName, string remoteAddress)
: base(endpointConfigurationName, remoteAddress)
{
}
public ArbiterClient(string endpointConfigurationName, EndpointAddress remoteAddress)
: base(endpointConfigurationName, remoteAddress)
{
}
public ArbiterClient(Binding binding, EndpointAddress remoteAddress)
: base(binding, remoteAddress)
{
}
public string GetStatsEx(bool clearExceptions)
{
return base.Channel.GetStatsEx(clearExceptions);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public IAsyncResult BeginGetStatsEx(bool clearExceptions, AsyncCallback callback, object asyncState)
{
return base.Channel.BeginGetStatsEx(clearExceptions, callback, asyncState);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public string EndGetStatsEx(IAsyncResult result)
{
return base.Channel.EndGetStatsEx(result);
}
private IAsyncResult OnBeginGetStatsEx(object[] inValues, AsyncCallback callback, object asyncState)
{
bool clearExceptions = (bool)inValues[0];
return BeginGetStatsEx(clearExceptions, callback, asyncState);
}
private object[] OnEndGetStatsEx(IAsyncResult result)
{
string retVal = EndGetStatsEx(result);
return new object[1] { retVal };
}
private void OnGetStatsExCompleted(object state)
{
if (this.GetStatsExCompleted != null)
{
InvokeAsyncCompletedEventArgs e = (InvokeAsyncCompletedEventArgs)state;
this.GetStatsExCompleted(this, new GetStatsExCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
}
}
public void GetStatsExAsync(bool clearExceptions)
{
GetStatsExAsync(clearExceptions, null);
}
public void GetStatsExAsync(bool clearExceptions, object userState)
{
if (onBeginGetStatsExDelegate == null)
{
onBeginGetStatsExDelegate = OnBeginGetStatsEx;
}
if (onEndGetStatsExDelegate == null)
{
onEndGetStatsExDelegate = OnEndGetStatsEx;
}
if (onGetStatsExCompletedDelegate == null)
{
onGetStatsExCompletedDelegate = OnGetStatsExCompleted;
}
InvokeAsync(onBeginGetStatsExDelegate, new object[1] { clearExceptions }, onEndGetStatsExDelegate, onGetStatsExCompletedDelegate, userState);
}
public string GetStats()
{
return base.Channel.GetStats();
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public IAsyncResult BeginGetStats(AsyncCallback callback, object asyncState)
{
return base.Channel.BeginGetStats(callback, asyncState);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public string EndGetStats(IAsyncResult result)
{
return base.Channel.EndGetStats(result);
}
private IAsyncResult OnBeginGetStats(object[] inValues, AsyncCallback callback, object asyncState)
{
return BeginGetStats(callback, asyncState);
}
private object[] OnEndGetStats(IAsyncResult result)
{
string retVal = EndGetStats(result);
return new object[1] { retVal };
}
private void OnGetStatsCompleted(object state)
{
if (this.GetStatsCompleted != null)
{
InvokeAsyncCompletedEventArgs e = (InvokeAsyncCompletedEventArgs)state;
this.GetStatsCompleted(this, new GetStatsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
}
}
public void GetStatsAsync()
{
GetStatsAsync(null);
}
public void GetStatsAsync(object userState)
{
if (onBeginGetStatsDelegate == null)
{
onBeginGetStatsDelegate = OnBeginGetStats;
}
if (onEndGetStatsDelegate == null)
{
onEndGetStatsDelegate = OnEndGetStats;
}
if (onGetStatsCompletedDelegate == null)
{
onGetStatsCompletedDelegate = OnGetStatsCompleted;
}
InvokeAsync(onBeginGetStatsDelegate, null, onEndGetStatsDelegate, onGetStatsCompletedDelegate, userState);
}
public void SetMultiProcess(bool value)
{
base.Channel.SetMultiProcess(value);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public IAsyncResult BeginSetMultiProcess(bool value, AsyncCallback callback, object asyncState)
{
return base.Channel.BeginSetMultiProcess(value, callback, asyncState);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public void EndSetMultiProcess(IAsyncResult result)
{
base.Channel.EndSetMultiProcess(result);
}
private IAsyncResult OnBeginSetMultiProcess(object[] inValues, AsyncCallback callback, object asyncState)
{
bool value = (bool)inValues[0];
return BeginSetMultiProcess(value, callback, asyncState);
}
private object[] OnEndSetMultiProcess(IAsyncResult result)
{
EndSetMultiProcess(result);
return null;
}
private void OnSetMultiProcessCompleted(object state)
{
if (this.SetMultiProcessCompleted != null)
{
InvokeAsyncCompletedEventArgs e = (InvokeAsyncCompletedEventArgs)state;
this.SetMultiProcessCompleted(this, new AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
}
}
public void SetMultiProcessAsync(bool value)
{
SetMultiProcessAsync(value, null);
}
public void SetMultiProcessAsync(bool value, object userState)
{
if (onBeginSetMultiProcessDelegate == null)
{
onBeginSetMultiProcessDelegate = OnBeginSetMultiProcess;
}
if (onEndSetMultiProcessDelegate == null)
{
onEndSetMultiProcessDelegate = OnEndSetMultiProcess;
}
if (onSetMultiProcessCompletedDelegate == null)
{
onSetMultiProcessCompletedDelegate = OnSetMultiProcessCompleted;
}
InvokeAsync(onBeginSetMultiProcessDelegate, new object[1] { value }, onEndSetMultiProcessDelegate, onSetMultiProcessCompletedDelegate, userState);
}
public void SetRecycleProcess(bool value)
{
base.Channel.SetRecycleProcess(value);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public IAsyncResult BeginSetRecycleProcess(bool value, AsyncCallback callback, object asyncState)
{
return base.Channel.BeginSetRecycleProcess(value, callback, asyncState);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public void EndSetRecycleProcess(IAsyncResult result)
{
base.Channel.EndSetRecycleProcess(result);
}
private IAsyncResult OnBeginSetRecycleProcess(object[] inValues, AsyncCallback callback, object asyncState)
{
bool value = (bool)inValues[0];
return BeginSetRecycleProcess(value, callback, asyncState);
}
private object[] OnEndSetRecycleProcess(IAsyncResult result)
{
EndSetRecycleProcess(result);
return null;
}
private void OnSetRecycleProcessCompleted(object state)
{
if (this.SetRecycleProcessCompleted != null)
{
InvokeAsyncCompletedEventArgs e = (InvokeAsyncCompletedEventArgs)state;
this.SetRecycleProcessCompleted(this, new AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
}
}
public void SetRecycleProcessAsync(bool value)
{
SetRecycleProcessAsync(value, null);
}
public void SetRecycleProcessAsync(bool value, object userState)
{
if (onBeginSetRecycleProcessDelegate == null)
{
onBeginSetRecycleProcessDelegate = OnBeginSetRecycleProcess;
}
if (onEndSetRecycleProcessDelegate == null)
{
onEndSetRecycleProcessDelegate = OnEndSetRecycleProcess;
}
if (onSetRecycleProcessCompletedDelegate == null)
{
onSetRecycleProcessCompletedDelegate = OnSetRecycleProcessCompleted;
}
InvokeAsync(onBeginSetRecycleProcessDelegate, new object[1] { value }, onEndSetRecycleProcessDelegate, onSetRecycleProcessCompletedDelegate, userState);
}
public void SetThreadConfigScript(string script, bool broadcast)
{
base.Channel.SetThreadConfigScript(script, broadcast);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public IAsyncResult BeginSetThreadConfigScript(string script, bool broadcast, AsyncCallback callback, object asyncState)
{
return base.Channel.BeginSetThreadConfigScript(script, broadcast, callback, asyncState);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public void EndSetThreadConfigScript(IAsyncResult result)
{
base.Channel.EndSetThreadConfigScript(result);
}
private IAsyncResult OnBeginSetThreadConfigScript(object[] inValues, AsyncCallback callback, object asyncState)
{
string script = (string)inValues[0];
bool broadcast = (bool)inValues[1];
return BeginSetThreadConfigScript(script, broadcast, callback, asyncState);
}
private object[] OnEndSetThreadConfigScript(IAsyncResult result)
{
EndSetThreadConfigScript(result);
return null;
}
private void OnSetThreadConfigScriptCompleted(object state)
{
if (this.SetThreadConfigScriptCompleted != null)
{
InvokeAsyncCompletedEventArgs e = (InvokeAsyncCompletedEventArgs)state;
this.SetThreadConfigScriptCompleted(this, new AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
}
}
public void SetThreadConfigScriptAsync(string script, bool broadcast)
{
SetThreadConfigScriptAsync(script, broadcast, null);
}
public void SetThreadConfigScriptAsync(string script, bool broadcast, object userState)
{
if (onBeginSetThreadConfigScriptDelegate == null)
{
onBeginSetThreadConfigScriptDelegate = OnBeginSetThreadConfigScript;
}
if (onEndSetThreadConfigScriptDelegate == null)
{
onEndSetThreadConfigScriptDelegate = OnEndSetThreadConfigScript;
}
if (onSetThreadConfigScriptCompletedDelegate == null)
{
onSetThreadConfigScriptCompletedDelegate = OnSetThreadConfigScriptCompleted;
}
InvokeAsync(onBeginSetThreadConfigScriptDelegate, new object[2] { script, broadcast }, onEndSetThreadConfigScriptDelegate, onSetThreadConfigScriptCompletedDelegate, userState);
}
public void SetRecycleQueueSize(int value)
{
base.Channel.SetRecycleQueueSize(value);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public IAsyncResult BeginSetRecycleQueueSize(int value, AsyncCallback callback, object asyncState)
{
return base.Channel.BeginSetRecycleQueueSize(value, callback, asyncState);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public void EndSetRecycleQueueSize(IAsyncResult result)
{
base.Channel.EndSetRecycleQueueSize(result);
}
private IAsyncResult OnBeginSetRecycleQueueSize(object[] inValues, AsyncCallback callback, object asyncState)
{
int value = (int)inValues[0];
return BeginSetRecycleQueueSize(value, callback, asyncState);
}
private object[] OnEndSetRecycleQueueSize(IAsyncResult result)
{
EndSetRecycleQueueSize(result);
return null;
}
private void OnSetRecycleQueueSizeCompleted(object state)
{
if (this.SetRecycleQueueSizeCompleted != null)
{
InvokeAsyncCompletedEventArgs e = (InvokeAsyncCompletedEventArgs)state;
this.SetRecycleQueueSizeCompleted(this, new AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
}
}
public void SetRecycleQueueSizeAsync(int value)
{
SetRecycleQueueSizeAsync(value, null);
}
public void SetRecycleQueueSizeAsync(int value, object userState)
{
if (onBeginSetRecycleQueueSizeDelegate == null)
{
onBeginSetRecycleQueueSizeDelegate = OnBeginSetRecycleQueueSize;
}
if (onEndSetRecycleQueueSizeDelegate == null)
{
onEndSetRecycleQueueSizeDelegate = OnEndSetRecycleQueueSize;
}
if (onSetRecycleQueueSizeCompletedDelegate == null)
{
onSetRecycleQueueSizeCompletedDelegate = OnSetRecycleQueueSizeCompleted;
}
InvokeAsync(onBeginSetRecycleQueueSizeDelegate, new object[1] { value }, onEndSetRecycleQueueSizeDelegate, onSetRecycleQueueSizeCompletedDelegate, userState);
}
}
@@ -0,0 +1,28 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Arbiter.Common.Arbiter;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
public class GetStatsCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public string Result
{
get
{
RaiseExceptionIfNecessary();
return (string)results[0];
}
}
public GetStatsCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,28 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Arbiter.Common.Arbiter;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
public class GetStatsExCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public string Result
{
get
{
RaiseExceptionIfNecessary();
return (string)results[0];
}
}
public GetStatsExCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A8540F3F-9CEB-437E-AE59-EBCFE4014051}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>Roblox.Grid.Arbiter.Common</RootNamespace>
<AssemblyName>Roblox.Grid.Arbiter.Common</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<WcfConfigValidationEnabled>True</WcfConfigValidationEnabled>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<Compile Include="ArbiterServiceUtils.cs" />
<Compile Include="ArbiterStats.cs" />
<Compile Include="ArbiterClient.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.XML" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
</Project>
@@ -0,0 +1,20 @@
using Roblox.Grid.Arbiter.Common.Arbiter;
namespace Roblox.Grid.Arbiter.Common;
public class ArbiterServiceUtils
{
public static ArbiterClient GetService(string Address)
{
return GetService(Address, 64990);
}
public static ArbiterClient GetService(string Address, int port)
{
if (Address == null)
{
return null;
}
return new ArbiterClient("RccServiceMonitor", "http://" + Address + ":" + port);
}
}
@@ -0,0 +1,184 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
namespace Roblox.Grid.Arbiter.Common;
public class ArbiterStats : IEnumerable<ArbiterStats.Stat>, IEnumerable
{
public struct Stat
{
public string name;
public string value;
internal Stat(string name, string value)
{
this.name = name;
this.value = value;
}
}
private List<Stat> stats;
IEnumerator IEnumerable.GetEnumerator()
{
foreach (Stat stat in stats)
{
yield return stat;
}
}
IEnumerator<Stat> IEnumerable<Stat>.GetEnumerator()
{
foreach (Stat stat in stats)
{
yield return stat;
}
}
public ArbiterStats()
{
stats = new List<Stat>();
}
public ArbiterStats(string source)
: this()
{
XmlReader xmlReader = XmlReader.Create(new StringReader(source));
while (xmlReader.Read())
{
if (xmlReader.Name != "Stat")
{
continue;
}
Stat stat = default(Stat);
xmlReader.MoveToFirstAttribute();
do
{
if (xmlReader.Name == "Name")
{
stat.name = xmlReader.Value;
}
else if (xmlReader.Name == "Value")
{
stat.value = xmlReader.Value;
}
}
while (xmlReader.MoveToNextAttribute());
if (stat.name != null && stat.value != null)
{
stats.Add(stat);
}
}
}
public void AddStat(string name, string value)
{
stats.Add(new Stat(name, value));
}
public void AddStat(string name, int value)
{
stats.Add(new Stat(name, value.ToString()));
}
public void AddStat(string name, long value)
{
stats.Add(new Stat(name, value.ToString()));
}
public void AddStat(string name, double value)
{
stats.Add(new Stat(name, value.ToString()));
}
public void AddStat(string name, bool value)
{
stats.Add(new Stat(name, value.ToString()));
}
public string GetStat(string name)
{
foreach (Stat stat in (IEnumerable<Stat>)this)
{
if (stat.name == name)
{
return stat.value;
}
}
throw new Exception("Stat " + name + " is missing");
}
public int GetStatInt(string name)
{
string stat = GetStat(name);
if (int.TryParse(stat, out var result))
{
return result;
}
Console.WriteLine("Stat " + name + " was malformed: " + stat);
return 0;
}
public long GetStatLong(string name)
{
string stat = GetStat(name);
if (long.TryParse(stat, out var result))
{
return result;
}
Console.WriteLine("Stat " + name + " was malformed: " + stat);
return 0L;
}
public double GetStatDouble(string name)
{
string stat = GetStat(name);
if (double.TryParse(stat, out var result))
{
return result;
}
Console.WriteLine("Stat " + name + " was malformed: " + stat);
return 0.0;
}
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
foreach (Stat stat in (IEnumerable<Stat>)this)
{
stringBuilder.Append(stat.name + ": " + stat.value + "\r\n");
}
return stringBuilder.ToString();
}
public string ToXml()
{
StringBuilder stringBuilder = new StringBuilder();
XmlWriter xmlWriter = XmlWriter.Create(stringBuilder);
xmlWriter.WriteStartElement("Stats");
foreach (Stat stat in (IEnumerable<Stat>)this)
{
WriteStat(xmlWriter, stat);
}
xmlWriter.WriteEndElement();
xmlWriter.Close();
return stringBuilder.ToString();
}
protected static void WriteStat(XmlWriter writer, Stat stat)
{
writer.WriteStartElement("Stat");
writer.WriteStartAttribute("Name");
writer.WriteString(stat.name);
writer.WriteEndAttribute();
writer.WriteStartAttribute("Value");
writer.WriteString(stat.value);
writer.WriteEndAttribute();
writer.WriteEndElement();
}
}
@@ -0,0 +1,28 @@
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="RccServiceMonitor" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
<binding name="RccServiceMonitor1" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:64990/" binding="basicHttpBinding" bindingConfiguration="RccServiceMonitor" contract="Arbiter.Arbiter" name="RccServiceMonitor"/>
<endpoint address="http://localhost:64990/" binding="basicHttpBinding" bindingConfiguration="RccServiceMonitor1" contract="Arbiter.Arbiter" name="RccServiceMonitor1"/>
</client>
</system.serviceModel>
<startup><supportedRuntime version="v2.0.50727"/></startup>
</configuration>
@@ -0,0 +1,263 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
###################
# compiled source #
###################
*.com
*.class
*.dll
*.exe
*.pdb
*.dll.config
*.cache
*.suo
# Include dlls if theyre in the NuGet packages directory
!/packages/*/lib/*.dll
# Include dlls if they're in the CommonReferences directory
!*CommonReferences/*.dll
####################
# VS Upgrade stuff #
####################
_UpgradeReport_Files/
###############
# Directories #
###############
bin/
obj/
TestResults/
###################
# Web publish log #
###################
*.Publish.xml
#############
# Resharper #
#############
/_ReSharper.*
*.ReSharper.*
############
# Packages #
############
# its better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
######################
# Logs and databases #
######################
*.log
*.sqlite
# OS generated files #
######################
.DS_Store?
ehthumbs.db
Icon?
Thumbs.db
# User-specific files
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
# Visual Studo 2015 cache/options directory
.vs/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
bower_components/
orleans.codegen.cs
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
@@ -0,0 +1,33 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Roblox.Grid.Client")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("Roblox.Grid.Client")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("2d4b525b-c69f-453d-bcbf-6a49dd05d414")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,303 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Roblox.Grid.Client
{
using System.Runtime.Serialization;
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name = "Status", Namespace = "http://roblox.com/")]
public partial class Status : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private string versionField;
private int environmentCountField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false)]
public string version
{
get
{
return this.versionField;
}
set
{
this.versionField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute(IsRequired = true, Order = 1)]
public int environmentCount
{
get
{
return this.environmentCountField;
}
set
{
this.environmentCountField = value;
}
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace = "http://roblox.com/", ConfigurationName = "Roblox.Grid.Client.RccService")]
public interface RccService
{
// CODEGEN: Generating message contract since element name GetStatusResult from namespace http://roblox.com/ is not marked nillable
[System.ServiceModel.OperationContractAttribute(Action = "http://roblox.com/GetStatus", ReplyAction = "http://roblox.com/GetStatusResponse")]
Roblox.Grid.Client.GetStatusResponse GetStatus(Roblox.Grid.Client.GetStatusRequest request);
[System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://roblox.com/GetStatus", ReplyAction = "http://roblox.com/GetStatusResponse")]
System.IAsyncResult BeginGetStatus(Roblox.Grid.Client.GetStatusRequest request, System.AsyncCallback callback, object asyncState);
Roblox.Grid.Client.GetStatusResponse EndGetStatus(System.IAsyncResult result);
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
public partial class GetStatusRequest
{
[System.ServiceModel.MessageBodyMemberAttribute(Name = "GetStatus", Namespace = "http://roblox.com/", Order = 0)]
public Roblox.Grid.Client.GetStatusRequestBody Body;
public GetStatusRequest()
{
}
public GetStatusRequest(Roblox.Grid.Client.GetStatusRequestBody Body)
{
this.Body = Body;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.Runtime.Serialization.DataContractAttribute()]
public partial class GetStatusRequestBody
{
public GetStatusRequestBody()
{
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
public partial class GetStatusResponse
{
[System.ServiceModel.MessageBodyMemberAttribute(Name = "GetStatusResponse", Namespace = "http://roblox.com/", Order = 0)]
public Roblox.Grid.Client.GetStatusResponseBody Body;
public GetStatusResponse()
{
}
public GetStatusResponse(Roblox.Grid.Client.GetStatusResponseBody Body)
{
this.Body = Body;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.Runtime.Serialization.DataContractAttribute(Namespace = "http://roblox.com/")]
public partial class GetStatusResponseBody
{
[System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 0)]
public Roblox.Grid.Client.Status GetStatusResult;
public GetStatusResponseBody()
{
}
public GetStatusResponseBody(Roblox.Grid.Client.Status GetStatusResult)
{
this.GetStatusResult = GetStatusResult;
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface RccServiceChannel : Roblox.Grid.Client.RccService, System.ServiceModel.IClientChannel
{
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class GetStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
private object[] results;
public GetStatusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
this.results = results;
}
public Roblox.Grid.Client.Status Result
{
get
{
base.RaiseExceptionIfNecessary();
return ((Roblox.Grid.Client.Status)(this.results[0]));
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class RccServiceClient : System.ServiceModel.ClientBase<Roblox.Grid.Client.RccService>, Roblox.Grid.Client.RccService
{
private BeginOperationDelegate onBeginGetStatusDelegate;
private EndOperationDelegate onEndGetStatusDelegate;
private System.Threading.SendOrPostCallback onGetStatusCompletedDelegate;
public RccServiceClient()
{
}
public RccServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
public RccServiceClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public RccServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public RccServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress)
{
}
public event System.EventHandler<GetStatusCompletedEventArgs> GetStatusCompleted;
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
Roblox.Grid.Client.GetStatusResponse Roblox.Grid.Client.RccService.GetStatus(Roblox.Grid.Client.GetStatusRequest request)
{
return base.Channel.GetStatus(request);
}
public Roblox.Grid.Client.Status GetStatus()
{
Roblox.Grid.Client.GetStatusRequest inValue = new Roblox.Grid.Client.GetStatusRequest();
inValue.Body = new Roblox.Grid.Client.GetStatusRequestBody();
Roblox.Grid.Client.GetStatusResponse retVal = ((Roblox.Grid.Client.RccService)(this)).GetStatus(inValue);
return retVal.Body.GetStatusResult;
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
System.IAsyncResult Roblox.Grid.Client.RccService.BeginGetStatus(Roblox.Grid.Client.GetStatusRequest request, System.AsyncCallback callback, object asyncState)
{
return base.Channel.BeginGetStatus(request, callback, asyncState);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public System.IAsyncResult BeginGetStatus(System.AsyncCallback callback, object asyncState)
{
Roblox.Grid.Client.GetStatusRequest inValue = new Roblox.Grid.Client.GetStatusRequest();
inValue.Body = new Roblox.Grid.Client.GetStatusRequestBody();
return ((Roblox.Grid.Client.RccService)(this)).BeginGetStatus(inValue, callback, asyncState);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
Roblox.Grid.Client.GetStatusResponse Roblox.Grid.Client.RccService.EndGetStatus(System.IAsyncResult result)
{
return base.Channel.EndGetStatus(result);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
public Roblox.Grid.Client.Status EndGetStatus(System.IAsyncResult result)
{
Roblox.Grid.Client.GetStatusResponse retVal = ((Roblox.Grid.Client.RccService)(this)).EndGetStatus(result);
return retVal.Body.GetStatusResult;
}
private System.IAsyncResult OnBeginGetStatus(object[] inValues, System.AsyncCallback callback, object asyncState)
{
return this.BeginGetStatus(callback, asyncState);
}
private object[] OnEndGetStatus(System.IAsyncResult result)
{
Roblox.Grid.Client.Status retVal = this.EndGetStatus(result);
return new object[] {
retVal};
}
private void OnGetStatusCompleted(object state)
{
if ((this.GetStatusCompleted != null))
{
InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
this.GetStatusCompleted(this, new GetStatusCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
}
}
public void GetStatusAsync()
{
this.GetStatusAsync(null);
}
public void GetStatusAsync(object userState)
{
if ((this.onBeginGetStatusDelegate == null))
{
this.onBeginGetStatusDelegate = new BeginOperationDelegate(this.OnBeginGetStatus);
}
if ((this.onEndGetStatusDelegate == null))
{
this.onEndGetStatusDelegate = new EndOperationDelegate(this.OnEndGetStatus);
}
if ((this.onGetStatusCompletedDelegate == null))
{
this.onGetStatusCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetStatusCompleted);
}
base.InvokeAsync(this.onBeginGetStatusDelegate, null, this.onEndGetStatusDelegate, this.onGetStatusCompletedDelegate, userState);
}
}
}
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{C4995CBC-3218-4651-8757-5F315822F09F}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>Roblox.Grid.Client</RootNamespace>
<AssemblyName>Roblox.Grid.Client</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RccService.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
@@ -0,0 +1,28 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Client;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
public class GetStatusCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public Status Result
{
get
{
RaiseExceptionIfNecessary();
return (Status)results[0];
}
}
public GetStatusCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,25 @@
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.ServiceModel;
namespace Roblox.Grid.Client;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
[EditorBrowsable(EditorBrowsableState.Advanced)]
[MessageContract(IsWrapped = false)]
public class GetStatusRequest
{
[MessageBodyMember(Name = "GetStatus", Namespace = "http://roblox.com/", Order = 0)]
public GetStatusRequestBody Body;
public GetStatusRequest()
{
}
public GetStatusRequest(GetStatusRequestBody Body)
{
this.Body = Body;
}
}
@@ -0,0 +1,14 @@
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.Serialization;
namespace Roblox.Grid.Client;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
[EditorBrowsable(EditorBrowsableState.Advanced)]
[DataContract]
public class GetStatusRequestBody
{
}
@@ -0,0 +1,25 @@
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.ServiceModel;
namespace Roblox.Grid.Client;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
[EditorBrowsable(EditorBrowsableState.Advanced)]
[MessageContract(IsWrapped = false)]
public class GetStatusResponse
{
[MessageBodyMember(Name = "GetStatusResponse", Namespace = "http://roblox.com/", Order = 0)]
public GetStatusResponseBody Body;
public GetStatusResponse()
{
}
public GetStatusResponse(GetStatusResponseBody Body)
{
this.Body = Body;
}
}
@@ -0,0 +1,25 @@
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.Serialization;
namespace Roblox.Grid.Client;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
[EditorBrowsable(EditorBrowsableState.Advanced)]
[DataContract(Namespace = "http://roblox.com/")]
public class GetStatusResponseBody
{
[DataMember(EmitDefaultValue = false, Order = 0)]
public Status GetStatusResult;
public GetStatusResponseBody()
{
}
public GetStatusResponseBody(Status GetStatusResult)
{
this.GetStatusResult = GetStatusResult;
}
}
@@ -0,0 +1,18 @@
using System;
using System.CodeDom.Compiler;
using System.ServiceModel;
namespace Roblox.Grid.Client;
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
[ServiceContract(Namespace = "http://roblox.com/", ConfigurationName = "Roblox.Grid.Client.RccService")]
public interface RccService
{
[OperationContract(Action = "http://roblox.com/GetStatus", ReplyAction = "http://roblox.com/GetStatusResponse")]
GetStatusResponse GetStatus(GetStatusRequest request);
[OperationContract(AsyncPattern = true, Action = "http://roblox.com/GetStatus", ReplyAction = "http://roblox.com/GetStatusResponse")]
IAsyncResult BeginGetStatus(GetStatusRequest request, AsyncCallback callback, object asyncState);
GetStatusResponse EndGetStatus(IAsyncResult result);
}
@@ -0,0 +1,11 @@
using System;
using System.CodeDom.Compiler;
using System.ServiceModel;
using System.ServiceModel.Channels;
namespace Roblox.Grid.Client;
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
public interface RccServiceChannel : RccService, IClientChannel, IContextChannel, IChannel, ICommunicationObject, IExtensibleObject<IContextChannel>, IDisposable
{
}
@@ -0,0 +1,127 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Threading;
namespace Roblox.Grid.Client;
[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
public class RccServiceClient : ClientBase<RccService>, RccService
{
private BeginOperationDelegate onBeginGetStatusDelegate;
private EndOperationDelegate onEndGetStatusDelegate;
private SendOrPostCallback onGetStatusCompletedDelegate;
public event EventHandler<GetStatusCompletedEventArgs> GetStatusCompleted;
public RccServiceClient()
{
}
public RccServiceClient(string endpointConfigurationName)
: base(endpointConfigurationName)
{
}
public RccServiceClient(string endpointConfigurationName, string remoteAddress)
: base(endpointConfigurationName, remoteAddress)
{
}
public RccServiceClient(string endpointConfigurationName, EndpointAddress remoteAddress)
: base(endpointConfigurationName, remoteAddress)
{
}
public RccServiceClient(Binding binding, EndpointAddress remoteAddress)
: base(binding, remoteAddress)
{
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
GetStatusResponse RccService.GetStatus(GetStatusRequest request)
{
return base.Channel.GetStatus(request);
}
public Status GetStatus()
{
GetStatusRequest inValue = new GetStatusRequest();
inValue.Body = new GetStatusRequestBody();
return ((RccService)this).GetStatus(inValue).Body.GetStatusResult;
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
IAsyncResult RccService.BeginGetStatus(GetStatusRequest request, AsyncCallback callback, object asyncState)
{
return base.Channel.BeginGetStatus(request, callback, asyncState);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public IAsyncResult BeginGetStatus(AsyncCallback callback, object asyncState)
{
GetStatusRequest inValue = new GetStatusRequest();
inValue.Body = new GetStatusRequestBody();
return ((RccService)this).BeginGetStatus(inValue, callback, asyncState);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
GetStatusResponse RccService.EndGetStatus(IAsyncResult result)
{
return base.Channel.EndGetStatus(result);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
public Status EndGetStatus(IAsyncResult result)
{
return ((RccService)this).EndGetStatus(result).Body.GetStatusResult;
}
private IAsyncResult OnBeginGetStatus(object[] inValues, AsyncCallback callback, object asyncState)
{
return BeginGetStatus(callback, asyncState);
}
private object[] OnEndGetStatus(IAsyncResult result)
{
Status retVal = EndGetStatus(result);
return new object[1] { retVal };
}
private void OnGetStatusCompleted(object state)
{
if (this.GetStatusCompleted != null)
{
InvokeAsyncCompletedEventArgs e = (InvokeAsyncCompletedEventArgs)state;
this.GetStatusCompleted(this, new GetStatusCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
}
}
public void GetStatusAsync()
{
GetStatusAsync(null);
}
public void GetStatusAsync(object userState)
{
if (onBeginGetStatusDelegate == null)
{
onBeginGetStatusDelegate = OnBeginGetStatus;
}
if (onEndGetStatusDelegate == null)
{
onEndGetStatusDelegate = OnEndGetStatus;
}
if (onGetStatusCompletedDelegate == null)
{
onGetStatusCompletedDelegate = OnGetStatusCompleted;
}
InvokeAsync(onBeginGetStatusDelegate, null, onEndGetStatusDelegate, onGetStatusCompletedDelegate, userState);
}
}
@@ -0,0 +1,55 @@
using System.CodeDom.Compiler;
using System.Diagnostics;
using System.Runtime.Serialization;
namespace Roblox.Grid.Client;
[DebuggerStepThrough]
[GeneratedCode("System.Runtime.Serialization", "4.0.0.0")]
[DataContract(Name = "Status", Namespace = "http://roblox.com/")]
public class Status : IExtensibleDataObject
{
private ExtensionDataObject extensionDataField;
private string versionField;
private int environmentCountField;
public ExtensionDataObject ExtensionData
{
get
{
return extensionDataField;
}
set
{
extensionDataField = value;
}
}
[DataMember(EmitDefaultValue = false)]
public string version
{
get
{
return versionField;
}
set
{
versionField = value;
}
}
[DataMember(IsRequired = true, Order = 1)]
public int environmentCount
{
get
{
return environmentCountField;
}
set
{
environmentCountField = value;
}
}
}
@@ -0,0 +1,263 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
###################
# compiled source #
###################
*.com
*.class
*.dll
*.exe
*.pdb
*.dll.config
*.cache
*.suo
# Include dlls if theyre in the NuGet packages directory
!/packages/*/lib/*.dll
# Include dlls if they're in the CommonReferences directory
!*CommonReferences/*.dll
####################
# VS Upgrade stuff #
####################
_UpgradeReport_Files/
###############
# Directories #
###############
bin/
obj/
TestResults/
###################
# Web publish log #
###################
*.Publish.xml
#############
# Resharper #
#############
/_ReSharper.*
*.ReSharper.*
############
# Packages #
############
# its better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
######################
# Logs and databases #
######################
*.log
*.sqlite
# OS generated files #
######################
.DS_Store?
ehthumbs.db
Icon?
Thumbs.db
# User-specific files
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
# Visual Studo 2015 cache/options directory
.vs/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
bower_components/
orleans.codegen.cs
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
@@ -0,0 +1,32 @@
using System;
using System.Xml;
using System.ServiceModel;
using Roblox.Grid.Rcc;
namespace Roblox.Grid.Common
{
public class GridServiceUtils
{
static GridServiceUtils()
{
binding.MaxReceivedMessageSize = int.MaxValue;
binding.SendTimeout = TimeSpan.FromMinutes(5);
binding.ReceiveTimeout = TimeSpan.FromMinutes(5);
binding.ReaderQuotas = new XmlDictionaryReaderQuotas();
binding.ReaderQuotas.MaxStringContentLength = int.MaxValue;
}
public static RCCServiceSoap GetService(string Address) => GetService(Address, 64989);
public static RCCServiceSoap GetService(string Address, int port)
{
if (Address == null) return null;
return new RCCServiceSoap
{
Url = "http://" + Address + ":" + port.ToString()
};
}
private static readonly BasicHttpBinding binding = new BasicHttpBinding();
}
}
@@ -0,0 +1,95 @@
using System;
using Roblox.Grid.Rcc;
namespace Roblox.Grid
{
public class Lua
{
public static ScriptExecution NewScript(string name, string script) => NewScript(name, script, NewArgs());
public static ScriptExecution NewScript(string name, string script, params object[] args) => NewScript(name, script, NewArgs(args));
public static ScriptExecution NewScript(string name, string script, LuaValue[] args) => new ScriptExecution
{
name = name,
script = script,
arguments = args ?? NewArgs()
};
public static string ToString(LuaValue[] result)
{
string str = null;
foreach (var value in result)
{
if (string.IsNullOrEmpty(str)) str = value.value;
else str = str + ", " + value.value;
}
return str;
}
public static void SetArg(LuaValue[] args, int index, object value)
{
var luaValue = new LuaValue();
if (value is int || value is float || value is double || value is long || value is decimal || value is short || value is ushort || value is uint || value is ulong)
{
luaValue.type = LuaType.LUA_TNUMBER;
luaValue.value = value.ToString();
}
else if (value is string)
{
luaValue.type = LuaType.LUA_TSTRING;
luaValue.value = value.ToString();
}
else if (value is bool boolean)
{
luaValue.type = LuaType.LUA_TBOOLEAN;
luaValue.value = boolean ? "true" : "false";
}
else if (value == null)
{
luaValue.type = LuaType.LUA_TNIL;
luaValue.value = string.Empty;
}
else
{
if (!(value is LuaValue[])) throw new ArgumentException("Unsupported Lua argument type " + value.GetType()?.ToString());
luaValue.type = LuaType.LUA_TTABLE;
luaValue.table = value as LuaValue[];
}
args[index] = luaValue;
}
private static object ConvertLua(LuaValue luaValue)
{
switch (luaValue.type)
{
case LuaType.LUA_TBOOLEAN:
return Convert.ToBoolean(luaValue.value);
case LuaType.LUA_TNUMBER:
return Convert.ToDouble(luaValue.value);
case LuaType.LUA_TSTRING:
return luaValue.value;
case LuaType.LUA_TTABLE:
return Lua.GetValues(luaValue.table);
}
return null;
}
public static LuaValue[] NewArgs(params object[] args)
{
var newArgs = new LuaValue[args.Length];
for (int i = 0; i < args.Length; i++)
SetArg(newArgs, i, args[i]);
return newArgs;
}
public static object[] GetValues(LuaValue[] args)
{
var values = new object[args.Length];
for (int i = 0; i < args.Length; i++)
values[i] = ConvertLua(args[i]);
return values;
}
public static ScriptExecution EmptyScript = NewScript("EmptyScript", "return");
}
}
@@ -0,0 +1,34 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Roblox.Grid.Common")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ROBLOX Corporation")]
[assembly: AssemblyProduct("Roblox.Grid.Common")]
[assembly: AssemblyCopyright("Copyright © ROBLOX Corporation 2008")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("641e3ab9-0ef1-439d-8f4f-e9ef662eda4e")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{DC7F620E-40D7-41F9-A569-2401AB1B9EAF}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>Roblox.Grid.Common</RootNamespace>
<AssemblyName>Roblox.Grid.Common</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Web.Services" />
<Reference Include="System.XML" />
</ItemGroup>
<ItemGroup>
<Compile Include="GridServiceUtils.cs" />
<Compile Include="Lua.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RCCServiceSoap.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
</Project>
@@ -0,0 +1,38 @@
using System;
using System.ServiceModel;
using System.Xml;
using Roblox.Grid.Rcc;
namespace Roblox.Grid.Common;
public class GridServiceUtils
{
private static readonly BasicHttpBinding binding;
static GridServiceUtils()
{
binding = new BasicHttpBinding();
binding.MaxReceivedMessageSize = 2147483647L;
binding.SendTimeout = TimeSpan.FromMinutes(5.0);
binding.ReceiveTimeout = TimeSpan.FromMinutes(5.0);
binding.ReaderQuotas = new XmlDictionaryReaderQuotas();
binding.ReaderQuotas.MaxStringContentLength = int.MaxValue;
}
public static RCCServiceSoap GetService(string Address)
{
return GetService(Address, 64989);
}
public static RCCServiceSoap GetService(string Address, int port)
{
if (Address == null)
{
return null;
}
return new RCCServiceSoap
{
Url = "http://" + Address + ":" + port
};
}
}
@@ -0,0 +1,82 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.Server;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class Job : INotifyPropertyChanged
{
private string idField;
private double expirationInSecondsField;
private int categoryField;
private double coresField;
public string id
{
get
{
return idField;
}
set
{
idField = value;
RaisePropertyChanged("id");
}
}
public double expirationInSeconds
{
get
{
return expirationInSecondsField;
}
set
{
expirationInSecondsField = value;
RaisePropertyChanged("expirationInSeconds");
}
}
public int category
{
get
{
return categoryField;
}
set
{
categoryField = value;
RaisePropertyChanged("category");
}
}
public double cores
{
get
{
return coresField;
}
set
{
coresField = value;
RaisePropertyChanged("cores");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,17 @@
using System;
using System.CodeDom.Compiler;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.Server;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[XmlType(Namespace = "http://roblox.com/")]
public enum LuaType
{
LUA_TNIL,
LUA_TBOOLEAN,
LUA_TNUMBER,
LUA_TSTRING,
LUA_TTABLE
}
@@ -0,0 +1,67 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.Server;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class LuaValue : INotifyPropertyChanged
{
private LuaType typeField;
private string valueField;
private LuaValue[] tableField;
public LuaType type
{
get
{
return typeField;
}
set
{
typeField = value;
RaisePropertyChanged("type");
}
}
public string value
{
get
{
return valueField;
}
set
{
valueField = value;
RaisePropertyChanged("value");
}
}
public LuaValue[] table
{
get
{
return tableField;
}
set
{
tableField = value;
RaisePropertyChanged("table");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,90 @@
using System.CodeDom.Compiler;
using System.Web.Services;
using System.Web.Services.Description;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.Server;
[GeneratedCode("wsdl", "4.8.3928.0")]
[WebService(Namespace = "http://roblox.com/")]
[WebServiceBinding(Name = "RCCServiceSoap", Namespace = "http://roblox.com/")]
public abstract class RCCServiceSoap : WebService
{
[WebMethod]
[SoapDocumentMethod("http://roblox.com/HelloWorld", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract string HelloWorld();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetVersion", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract string GetVersion();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetStatus", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract Status GetStatus();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/OpenJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("OpenJobResult")]
public abstract LuaValue[] OpenJob(Job job, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/OpenJobEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract LuaValue[] OpenJobEx(Job job, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/RenewLease", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract double RenewLease(string jobID, double expirationInSeconds);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/Execute", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("ExecuteResult", IsNullable = true)]
public abstract LuaValue[] Execute(string jobID, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/ExecuteEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract LuaValue[] ExecuteEx(string jobID, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/CloseJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract void CloseJob(string jobID);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/BatchJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("BatchJobResult", IsNullable = true)]
public abstract LuaValue[] BatchJob(Job job, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/BatchJobEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract LuaValue[] BatchJobEx(Job job, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetExpiration", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract double GetExpiration(string jobID);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetAllJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("GetAllJobsResult", IsNullable = true)]
public abstract Job[] GetAllJobs();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetAllJobsEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract Job[] GetAllJobsEx();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/CloseExpiredJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract int CloseExpiredJobs();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/CloseAllJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract int CloseAllJobs();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/Diag", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("DiagResult", IsNullable = true)]
public abstract LuaValue[] Diag(int type, string jobID);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/DiagEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public abstract LuaValue[] DiagEx(int type, string jobID);
}
@@ -0,0 +1,67 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.Server;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class ScriptExecution : INotifyPropertyChanged
{
private string nameField;
private string scriptField;
private LuaValue[] argumentsField;
public string name
{
get
{
return nameField;
}
set
{
nameField = value;
RaisePropertyChanged("name");
}
}
public string script
{
get
{
return scriptField;
}
set
{
scriptField = value;
RaisePropertyChanged("script");
}
}
public LuaValue[] arguments
{
get
{
return argumentsField;
}
set
{
argumentsField = value;
RaisePropertyChanged("arguments");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,52 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.Server;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class Status : INotifyPropertyChanged
{
private string versionField;
private int environmentCountField;
public string version
{
get
{
return versionField;
}
set
{
versionField = value;
RaisePropertyChanged("version");
}
}
public int environmentCount
{
get
{
return environmentCountField;
}
set
{
environmentCountField = value;
RaisePropertyChanged("environmentCount");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,89 @@
using System.CodeDom.Compiler;
using System.Web.Services;
using System.Web.Services.Description;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.ServerInterface;
[GeneratedCode("wsdl", "4.8.3928.0")]
[WebServiceBinding(Name = "RCCServiceSoap", Namespace = "http://roblox.com/")]
public interface IRCCServiceSoap
{
[WebMethod]
[SoapDocumentMethod("http://roblox.com/HelloWorld", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
string HelloWorld();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetVersion", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
string GetVersion();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetStatus", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
Status GetStatus();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/OpenJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("OpenJobResult")]
LuaValue[] OpenJob(Job job, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/OpenJobEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
LuaValue[] OpenJobEx(Job job, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/RenewLease", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
double RenewLease(string jobID, double expirationInSeconds);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/Execute", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("ExecuteResult", IsNullable = true)]
LuaValue[] Execute(string jobID, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/ExecuteEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
LuaValue[] ExecuteEx(string jobID, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/CloseJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
void CloseJob(string jobID);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/BatchJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("BatchJobResult", IsNullable = true)]
LuaValue[] BatchJob(Job job, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/BatchJobEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
LuaValue[] BatchJobEx(Job job, ScriptExecution script);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetExpiration", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
double GetExpiration(string jobID);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetAllJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("GetAllJobsResult", IsNullable = true)]
Job[] GetAllJobs();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/GetAllJobsEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
Job[] GetAllJobsEx();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/CloseExpiredJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
int CloseExpiredJobs();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/CloseAllJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
int CloseAllJobs();
[WebMethod]
[SoapDocumentMethod("http://roblox.com/Diag", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("DiagResult", IsNullable = true)]
LuaValue[] Diag(int type, string jobID);
[WebMethod]
[SoapDocumentMethod("http://roblox.com/DiagEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
LuaValue[] DiagEx(int type, string jobID);
}
@@ -0,0 +1,82 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.ServerInterface;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class Job : INotifyPropertyChanged
{
private string idField;
private double expirationInSecondsField;
private int categoryField;
private double coresField;
public string id
{
get
{
return idField;
}
set
{
idField = value;
RaisePropertyChanged("id");
}
}
public double expirationInSeconds
{
get
{
return expirationInSecondsField;
}
set
{
expirationInSecondsField = value;
RaisePropertyChanged("expirationInSeconds");
}
}
public int category
{
get
{
return categoryField;
}
set
{
categoryField = value;
RaisePropertyChanged("category");
}
}
public double cores
{
get
{
return coresField;
}
set
{
coresField = value;
RaisePropertyChanged("cores");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,17 @@
using System;
using System.CodeDom.Compiler;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.ServerInterface;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[XmlType(Namespace = "http://roblox.com/")]
public enum LuaType
{
LUA_TNIL,
LUA_TBOOLEAN,
LUA_TNUMBER,
LUA_TSTRING,
LUA_TTABLE
}
@@ -0,0 +1,67 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.ServerInterface;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class LuaValue : INotifyPropertyChanged
{
private LuaType typeField;
private string valueField;
private LuaValue[] tableField;
public LuaType type
{
get
{
return typeField;
}
set
{
typeField = value;
RaisePropertyChanged("type");
}
}
public string value
{
get
{
return valueField;
}
set
{
valueField = value;
RaisePropertyChanged("value");
}
}
public LuaValue[] table
{
get
{
return tableField;
}
set
{
tableField = value;
RaisePropertyChanged("table");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,67 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.ServerInterface;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class ScriptExecution : INotifyPropertyChanged
{
private string nameField;
private string scriptField;
private LuaValue[] argumentsField;
public string name
{
get
{
return nameField;
}
set
{
nameField = value;
RaisePropertyChanged("name");
}
}
public string script
{
get
{
return scriptField;
}
set
{
scriptField = value;
RaisePropertyChanged("script");
}
}
public LuaValue[] arguments
{
get
{
return argumentsField;
}
set
{
argumentsField = value;
RaisePropertyChanged("arguments");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,52 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc.ServerInterface;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class Status : INotifyPropertyChanged
{
private string versionField;
private int environmentCountField;
public string version
{
get
{
return versionField;
}
set
{
versionField = value;
RaisePropertyChanged("version");
}
}
public int environmentCount
{
get
{
return environmentCountField;
}
set
{
environmentCountField = value;
RaisePropertyChanged("environmentCount");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class BatchJobCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public LuaValue[] Result
{
get
{
RaiseExceptionIfNecessary();
return (LuaValue[])results[0];
}
}
internal BatchJobCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void BatchJobCompletedEventHandler(object sender, BatchJobCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class BatchJobExCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public LuaValue[] Result
{
get
{
RaiseExceptionIfNecessary();
return (LuaValue[])results[0];
}
}
internal BatchJobExCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void BatchJobExCompletedEventHandler(object sender, BatchJobExCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class CloseAllJobsCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public int Result
{
get
{
RaiseExceptionIfNecessary();
return (int)results[0];
}
}
internal CloseAllJobsCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void CloseAllJobsCompletedEventHandler(object sender, CloseAllJobsCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class CloseExpiredJobsCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public int Result
{
get
{
RaiseExceptionIfNecessary();
return (int)results[0];
}
}
internal CloseExpiredJobsCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void CloseExpiredJobsCompletedEventHandler(object sender, CloseExpiredJobsCompletedEventArgs e);
@@ -0,0 +1,7 @@
using System.CodeDom.Compiler;
using System.ComponentModel;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void CloseJobCompletedEventHandler(object sender, AsyncCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class DiagCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public LuaValue[] Result
{
get
{
RaiseExceptionIfNecessary();
return (LuaValue[])results[0];
}
}
internal DiagCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void DiagCompletedEventHandler(object sender, DiagCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class DiagExCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public LuaValue[] Result
{
get
{
RaiseExceptionIfNecessary();
return (LuaValue[])results[0];
}
}
internal DiagExCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void DiagExCompletedEventHandler(object sender, DiagExCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class ExecuteCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public LuaValue[] Result
{
get
{
RaiseExceptionIfNecessary();
return (LuaValue[])results[0];
}
}
internal ExecuteCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void ExecuteCompletedEventHandler(object sender, ExecuteCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class ExecuteExCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public LuaValue[] Result
{
get
{
RaiseExceptionIfNecessary();
return (LuaValue[])results[0];
}
}
internal ExecuteExCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void ExecuteExCompletedEventHandler(object sender, ExecuteExCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class GetAllJobsCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public Job[] Result
{
get
{
RaiseExceptionIfNecessary();
return (Job[])results[0];
}
}
internal GetAllJobsCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void GetAllJobsCompletedEventHandler(object sender, GetAllJobsCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class GetAllJobsExCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public Job[] Result
{
get
{
RaiseExceptionIfNecessary();
return (Job[])results[0];
}
}
internal GetAllJobsExCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void GetAllJobsExCompletedEventHandler(object sender, GetAllJobsExCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class GetExpirationCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public double Result
{
get
{
RaiseExceptionIfNecessary();
return (double)results[0];
}
}
internal GetExpirationCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void GetExpirationCompletedEventHandler(object sender, GetExpirationCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class GetStatusCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public Status Result
{
get
{
RaiseExceptionIfNecessary();
return (Status)results[0];
}
}
internal GetStatusCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void GetStatusCompletedEventHandler(object sender, GetStatusCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class GetVersionCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public string Result
{
get
{
RaiseExceptionIfNecessary();
return (string)results[0];
}
}
internal GetVersionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void GetVersionCompletedEventHandler(object sender, GetVersionCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class HelloWorldCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public string Result
{
get
{
RaiseExceptionIfNecessary();
return (string)results[0];
}
}
internal HelloWorldCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void HelloWorldCompletedEventHandler(object sender, HelloWorldCompletedEventArgs e);
@@ -0,0 +1,82 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class Job : INotifyPropertyChanged
{
private string idField;
private double expirationInSecondsField;
private int categoryField;
private double coresField;
public string id
{
get
{
return idField;
}
set
{
idField = value;
RaisePropertyChanged("id");
}
}
public double expirationInSeconds
{
get
{
return expirationInSecondsField;
}
set
{
expirationInSecondsField = value;
RaisePropertyChanged("expirationInSeconds");
}
}
public int category
{
get
{
return categoryField;
}
set
{
categoryField = value;
RaisePropertyChanged("category");
}
}
public double cores
{
get
{
return coresField;
}
set
{
coresField = value;
RaisePropertyChanged("cores");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,17 @@
using System;
using System.CodeDom.Compiler;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[XmlType(Namespace = "http://roblox.com/")]
public enum LuaType
{
LUA_TNIL,
LUA_TBOOLEAN,
LUA_TNUMBER,
LUA_TSTRING,
LUA_TTABLE
}
@@ -0,0 +1,67 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class LuaValue : INotifyPropertyChanged
{
private LuaType typeField;
private string valueField;
private LuaValue[] tableField;
public LuaType type
{
get
{
return typeField;
}
set
{
typeField = value;
RaisePropertyChanged("type");
}
}
public string value
{
get
{
return valueField;
}
set
{
valueField = value;
RaisePropertyChanged("value");
}
}
public LuaValue[] table
{
get
{
return tableField;
}
set
{
tableField = value;
RaisePropertyChanged("table");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class OpenJobCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public LuaValue[] Result
{
get
{
RaiseExceptionIfNecessary();
return (LuaValue[])results[0];
}
}
internal OpenJobCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void OpenJobCompletedEventHandler(object sender, OpenJobCompletedEventArgs e);
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class OpenJobExCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public LuaValue[] Result
{
get
{
RaiseExceptionIfNecessary();
return (LuaValue[])results[0];
}
}
internal OpenJobExCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void OpenJobExCompletedEventHandler(object sender, OpenJobExCompletedEventArgs e);
@@ -0,0 +1,802 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Threading;
using System.Web.Services;
using System.Web.Services.Description;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[WebServiceBinding(Name = "RCCServiceSoap", Namespace = "http://roblox.com/")]
public class RCCServiceSoap : SoapHttpClientProtocol
{
private SendOrPostCallback HelloWorldOperationCompleted;
private SendOrPostCallback GetVersionOperationCompleted;
private SendOrPostCallback GetStatusOperationCompleted;
private SendOrPostCallback OpenJobOperationCompleted;
private SendOrPostCallback OpenJobExOperationCompleted;
private SendOrPostCallback RenewLeaseOperationCompleted;
private SendOrPostCallback ExecuteOperationCompleted;
private SendOrPostCallback ExecuteExOperationCompleted;
private SendOrPostCallback CloseJobOperationCompleted;
private SendOrPostCallback BatchJobOperationCompleted;
private SendOrPostCallback BatchJobExOperationCompleted;
private SendOrPostCallback GetExpirationOperationCompleted;
private SendOrPostCallback GetAllJobsOperationCompleted;
private SendOrPostCallback GetAllJobsExOperationCompleted;
private SendOrPostCallback CloseExpiredJobsOperationCompleted;
private SendOrPostCallback CloseAllJobsOperationCompleted;
private SendOrPostCallback DiagOperationCompleted;
private SendOrPostCallback DiagExOperationCompleted;
public event HelloWorldCompletedEventHandler HelloWorldCompleted;
public event GetVersionCompletedEventHandler GetVersionCompleted;
public event GetStatusCompletedEventHandler GetStatusCompleted;
public event OpenJobCompletedEventHandler OpenJobCompleted;
public event OpenJobExCompletedEventHandler OpenJobExCompleted;
public event RenewLeaseCompletedEventHandler RenewLeaseCompleted;
public event ExecuteCompletedEventHandler ExecuteCompleted;
public event ExecuteExCompletedEventHandler ExecuteExCompleted;
public event CloseJobCompletedEventHandler CloseJobCompleted;
public event BatchJobCompletedEventHandler BatchJobCompleted;
public event BatchJobExCompletedEventHandler BatchJobExCompleted;
public event GetExpirationCompletedEventHandler GetExpirationCompleted;
public event GetAllJobsCompletedEventHandler GetAllJobsCompleted;
public event GetAllJobsExCompletedEventHandler GetAllJobsExCompleted;
public event CloseExpiredJobsCompletedEventHandler CloseExpiredJobsCompleted;
public event CloseAllJobsCompletedEventHandler CloseAllJobsCompleted;
public event DiagCompletedEventHandler DiagCompleted;
public event DiagExCompletedEventHandler DiagExCompleted;
[SoapDocumentMethod("http://roblox.com/HelloWorld", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string HelloWorld()
{
return (string)Invoke("HelloWorld", new object[0])[0];
}
public IAsyncResult BeginHelloWorld(AsyncCallback callback, object asyncState)
{
return BeginInvoke("HelloWorld", new object[0], callback, asyncState);
}
public string EndHelloWorld(IAsyncResult asyncResult)
{
return (string)EndInvoke(asyncResult)[0];
}
public void HelloWorldAsync()
{
HelloWorldAsync(null);
}
public void HelloWorldAsync(object userState)
{
if (HelloWorldOperationCompleted == null)
{
HelloWorldOperationCompleted = OnHelloWorldOperationCompleted;
}
InvokeAsync("HelloWorld", new object[0], HelloWorldOperationCompleted, userState);
}
private void OnHelloWorldOperationCompleted(object arg)
{
if (this.HelloWorldCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.HelloWorldCompleted(this, new HelloWorldCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/GetVersion", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string GetVersion()
{
return (string)Invoke("GetVersion", new object[0])[0];
}
public IAsyncResult BeginGetVersion(AsyncCallback callback, object asyncState)
{
return BeginInvoke("GetVersion", new object[0], callback, asyncState);
}
public string EndGetVersion(IAsyncResult asyncResult)
{
return (string)EndInvoke(asyncResult)[0];
}
public void GetVersionAsync()
{
GetVersionAsync(null);
}
public void GetVersionAsync(object userState)
{
if (GetVersionOperationCompleted == null)
{
GetVersionOperationCompleted = OnGetVersionOperationCompleted;
}
InvokeAsync("GetVersion", new object[0], GetVersionOperationCompleted, userState);
}
private void OnGetVersionOperationCompleted(object arg)
{
if (this.GetVersionCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.GetVersionCompleted(this, new GetVersionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/GetStatus", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public Status GetStatus()
{
return (Status)Invoke("GetStatus", new object[0])[0];
}
public IAsyncResult BeginGetStatus(AsyncCallback callback, object asyncState)
{
return BeginInvoke("GetStatus", new object[0], callback, asyncState);
}
public Status EndGetStatus(IAsyncResult asyncResult)
{
return (Status)EndInvoke(asyncResult)[0];
}
public void GetStatusAsync()
{
GetStatusAsync(null);
}
public void GetStatusAsync(object userState)
{
if (GetStatusOperationCompleted == null)
{
GetStatusOperationCompleted = OnGetStatusOperationCompleted;
}
InvokeAsync("GetStatus", new object[0], GetStatusOperationCompleted, userState);
}
private void OnGetStatusOperationCompleted(object arg)
{
if (this.GetStatusCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.GetStatusCompleted(this, new GetStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/OpenJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("OpenJobResult")]
public LuaValue[] OpenJob(Job job, ScriptExecution script)
{
return (LuaValue[])Invoke("OpenJob", new object[2] { job, script })[0];
}
public IAsyncResult BeginOpenJob(Job job, ScriptExecution script, AsyncCallback callback, object asyncState)
{
return BeginInvoke("OpenJob", new object[2] { job, script }, callback, asyncState);
}
public LuaValue[] EndOpenJob(IAsyncResult asyncResult)
{
return (LuaValue[])EndInvoke(asyncResult)[0];
}
public void OpenJobAsync(Job job, ScriptExecution script)
{
OpenJobAsync(job, script, null);
}
public void OpenJobAsync(Job job, ScriptExecution script, object userState)
{
if (OpenJobOperationCompleted == null)
{
OpenJobOperationCompleted = OnOpenJobOperationCompleted;
}
InvokeAsync("OpenJob", new object[2] { job, script }, OpenJobOperationCompleted, userState);
}
private void OnOpenJobOperationCompleted(object arg)
{
if (this.OpenJobCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.OpenJobCompleted(this, new OpenJobCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/OpenJobEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public LuaValue[] OpenJobEx(Job job, ScriptExecution script)
{
return (LuaValue[])Invoke("OpenJobEx", new object[2] { job, script })[0];
}
public IAsyncResult BeginOpenJobEx(Job job, ScriptExecution script, AsyncCallback callback, object asyncState)
{
return BeginInvoke("OpenJobEx", new object[2] { job, script }, callback, asyncState);
}
public LuaValue[] EndOpenJobEx(IAsyncResult asyncResult)
{
return (LuaValue[])EndInvoke(asyncResult)[0];
}
public void OpenJobExAsync(Job job, ScriptExecution script)
{
OpenJobExAsync(job, script, null);
}
public void OpenJobExAsync(Job job, ScriptExecution script, object userState)
{
if (OpenJobExOperationCompleted == null)
{
OpenJobExOperationCompleted = OnOpenJobExOperationCompleted;
}
InvokeAsync("OpenJobEx", new object[2] { job, script }, OpenJobExOperationCompleted, userState);
}
private void OnOpenJobExOperationCompleted(object arg)
{
if (this.OpenJobExCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.OpenJobExCompleted(this, new OpenJobExCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/RenewLease", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public double RenewLease(string jobID, double expirationInSeconds)
{
return (double)Invoke("RenewLease", new object[2] { jobID, expirationInSeconds })[0];
}
public IAsyncResult BeginRenewLease(string jobID, double expirationInSeconds, AsyncCallback callback, object asyncState)
{
return BeginInvoke("RenewLease", new object[2] { jobID, expirationInSeconds }, callback, asyncState);
}
public double EndRenewLease(IAsyncResult asyncResult)
{
return (double)EndInvoke(asyncResult)[0];
}
public void RenewLeaseAsync(string jobID, double expirationInSeconds)
{
RenewLeaseAsync(jobID, expirationInSeconds, null);
}
public void RenewLeaseAsync(string jobID, double expirationInSeconds, object userState)
{
if (RenewLeaseOperationCompleted == null)
{
RenewLeaseOperationCompleted = OnRenewLeaseOperationCompleted;
}
InvokeAsync("RenewLease", new object[2] { jobID, expirationInSeconds }, RenewLeaseOperationCompleted, userState);
}
private void OnRenewLeaseOperationCompleted(object arg)
{
if (this.RenewLeaseCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.RenewLeaseCompleted(this, new RenewLeaseCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/Execute", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("ExecuteResult", IsNullable = true)]
public LuaValue[] Execute(string jobID, ScriptExecution script)
{
return (LuaValue[])Invoke("Execute", new object[2] { jobID, script })[0];
}
public IAsyncResult BeginExecute(string jobID, ScriptExecution script, AsyncCallback callback, object asyncState)
{
return BeginInvoke("Execute", new object[2] { jobID, script }, callback, asyncState);
}
public LuaValue[] EndExecute(IAsyncResult asyncResult)
{
return (LuaValue[])EndInvoke(asyncResult)[0];
}
public void ExecuteAsync(string jobID, ScriptExecution script)
{
ExecuteAsync(jobID, script, null);
}
public void ExecuteAsync(string jobID, ScriptExecution script, object userState)
{
if (ExecuteOperationCompleted == null)
{
ExecuteOperationCompleted = OnExecuteOperationCompleted;
}
InvokeAsync("Execute", new object[2] { jobID, script }, ExecuteOperationCompleted, userState);
}
private void OnExecuteOperationCompleted(object arg)
{
if (this.ExecuteCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.ExecuteCompleted(this, new ExecuteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/ExecuteEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public LuaValue[] ExecuteEx(string jobID, ScriptExecution script)
{
return (LuaValue[])Invoke("ExecuteEx", new object[2] { jobID, script })[0];
}
public IAsyncResult BeginExecuteEx(string jobID, ScriptExecution script, AsyncCallback callback, object asyncState)
{
return BeginInvoke("ExecuteEx", new object[2] { jobID, script }, callback, asyncState);
}
public LuaValue[] EndExecuteEx(IAsyncResult asyncResult)
{
return (LuaValue[])EndInvoke(asyncResult)[0];
}
public void ExecuteExAsync(string jobID, ScriptExecution script)
{
ExecuteExAsync(jobID, script, null);
}
public void ExecuteExAsync(string jobID, ScriptExecution script, object userState)
{
if (ExecuteExOperationCompleted == null)
{
ExecuteExOperationCompleted = OnExecuteExOperationCompleted;
}
InvokeAsync("ExecuteEx", new object[2] { jobID, script }, ExecuteExOperationCompleted, userState);
}
private void OnExecuteExOperationCompleted(object arg)
{
if (this.ExecuteExCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.ExecuteExCompleted(this, new ExecuteExCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/CloseJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public void CloseJob(string jobID)
{
Invoke("CloseJob", new object[1] { jobID });
}
public IAsyncResult BeginCloseJob(string jobID, AsyncCallback callback, object asyncState)
{
return BeginInvoke("CloseJob", new object[1] { jobID }, callback, asyncState);
}
public void EndCloseJob(IAsyncResult asyncResult)
{
EndInvoke(asyncResult);
}
public void CloseJobAsync(string jobID)
{
CloseJobAsync(jobID, null);
}
public void CloseJobAsync(string jobID, object userState)
{
if (CloseJobOperationCompleted == null)
{
CloseJobOperationCompleted = OnCloseJobOperationCompleted;
}
InvokeAsync("CloseJob", new object[1] { jobID }, CloseJobOperationCompleted, userState);
}
private void OnCloseJobOperationCompleted(object arg)
{
if (this.CloseJobCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.CloseJobCompleted(this, new AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/BatchJob", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("BatchJobResult", IsNullable = true)]
public LuaValue[] BatchJob(Job job, ScriptExecution script)
{
return (LuaValue[])Invoke("BatchJob", new object[2] { job, script })[0];
}
public IAsyncResult BeginBatchJob(Job job, ScriptExecution script, AsyncCallback callback, object asyncState)
{
return BeginInvoke("BatchJob", new object[2] { job, script }, callback, asyncState);
}
public LuaValue[] EndBatchJob(IAsyncResult asyncResult)
{
return (LuaValue[])EndInvoke(asyncResult)[0];
}
public void BatchJobAsync(Job job, ScriptExecution script)
{
BatchJobAsync(job, script, null);
}
public void BatchJobAsync(Job job, ScriptExecution script, object userState)
{
if (BatchJobOperationCompleted == null)
{
BatchJobOperationCompleted = OnBatchJobOperationCompleted;
}
InvokeAsync("BatchJob", new object[2] { job, script }, BatchJobOperationCompleted, userState);
}
private void OnBatchJobOperationCompleted(object arg)
{
if (this.BatchJobCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.BatchJobCompleted(this, new BatchJobCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/BatchJobEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public LuaValue[] BatchJobEx(Job job, ScriptExecution script)
{
return (LuaValue[])Invoke("BatchJobEx", new object[2] { job, script })[0];
}
public IAsyncResult BeginBatchJobEx(Job job, ScriptExecution script, AsyncCallback callback, object asyncState)
{
return BeginInvoke("BatchJobEx", new object[2] { job, script }, callback, asyncState);
}
public LuaValue[] EndBatchJobEx(IAsyncResult asyncResult)
{
return (LuaValue[])EndInvoke(asyncResult)[0];
}
public void BatchJobExAsync(Job job, ScriptExecution script)
{
BatchJobExAsync(job, script, null);
}
public void BatchJobExAsync(Job job, ScriptExecution script, object userState)
{
if (BatchJobExOperationCompleted == null)
{
BatchJobExOperationCompleted = OnBatchJobExOperationCompleted;
}
InvokeAsync("BatchJobEx", new object[2] { job, script }, BatchJobExOperationCompleted, userState);
}
private void OnBatchJobExOperationCompleted(object arg)
{
if (this.BatchJobExCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.BatchJobExCompleted(this, new BatchJobExCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/GetExpiration", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public double GetExpiration(string jobID)
{
return (double)Invoke("GetExpiration", new object[1] { jobID })[0];
}
public IAsyncResult BeginGetExpiration(string jobID, AsyncCallback callback, object asyncState)
{
return BeginInvoke("GetExpiration", new object[1] { jobID }, callback, asyncState);
}
public double EndGetExpiration(IAsyncResult asyncResult)
{
return (double)EndInvoke(asyncResult)[0];
}
public void GetExpirationAsync(string jobID)
{
GetExpirationAsync(jobID, null);
}
public void GetExpirationAsync(string jobID, object userState)
{
if (GetExpirationOperationCompleted == null)
{
GetExpirationOperationCompleted = OnGetExpirationOperationCompleted;
}
InvokeAsync("GetExpiration", new object[1] { jobID }, GetExpirationOperationCompleted, userState);
}
private void OnGetExpirationOperationCompleted(object arg)
{
if (this.GetExpirationCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.GetExpirationCompleted(this, new GetExpirationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/GetAllJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("GetAllJobsResult", IsNullable = true)]
public Job[] GetAllJobs()
{
return (Job[])Invoke("GetAllJobs", new object[0])[0];
}
public IAsyncResult BeginGetAllJobs(AsyncCallback callback, object asyncState)
{
return BeginInvoke("GetAllJobs", new object[0], callback, asyncState);
}
public Job[] EndGetAllJobs(IAsyncResult asyncResult)
{
return (Job[])EndInvoke(asyncResult)[0];
}
public void GetAllJobsAsync()
{
GetAllJobsAsync(null);
}
public void GetAllJobsAsync(object userState)
{
if (GetAllJobsOperationCompleted == null)
{
GetAllJobsOperationCompleted = OnGetAllJobsOperationCompleted;
}
InvokeAsync("GetAllJobs", new object[0], GetAllJobsOperationCompleted, userState);
}
private void OnGetAllJobsOperationCompleted(object arg)
{
if (this.GetAllJobsCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.GetAllJobsCompleted(this, new GetAllJobsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/GetAllJobsEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public Job[] GetAllJobsEx()
{
return (Job[])Invoke("GetAllJobsEx", new object[0])[0];
}
public IAsyncResult BeginGetAllJobsEx(AsyncCallback callback, object asyncState)
{
return BeginInvoke("GetAllJobsEx", new object[0], callback, asyncState);
}
public Job[] EndGetAllJobsEx(IAsyncResult asyncResult)
{
return (Job[])EndInvoke(asyncResult)[0];
}
public void GetAllJobsExAsync()
{
GetAllJobsExAsync(null);
}
public void GetAllJobsExAsync(object userState)
{
if (GetAllJobsExOperationCompleted == null)
{
GetAllJobsExOperationCompleted = OnGetAllJobsExOperationCompleted;
}
InvokeAsync("GetAllJobsEx", new object[0], GetAllJobsExOperationCompleted, userState);
}
private void OnGetAllJobsExOperationCompleted(object arg)
{
if (this.GetAllJobsExCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.GetAllJobsExCompleted(this, new GetAllJobsExCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/CloseExpiredJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public int CloseExpiredJobs()
{
return (int)Invoke("CloseExpiredJobs", new object[0])[0];
}
public IAsyncResult BeginCloseExpiredJobs(AsyncCallback callback, object asyncState)
{
return BeginInvoke("CloseExpiredJobs", new object[0], callback, asyncState);
}
public int EndCloseExpiredJobs(IAsyncResult asyncResult)
{
return (int)EndInvoke(asyncResult)[0];
}
public void CloseExpiredJobsAsync()
{
CloseExpiredJobsAsync(null);
}
public void CloseExpiredJobsAsync(object userState)
{
if (CloseExpiredJobsOperationCompleted == null)
{
CloseExpiredJobsOperationCompleted = OnCloseExpiredJobsOperationCompleted;
}
InvokeAsync("CloseExpiredJobs", new object[0], CloseExpiredJobsOperationCompleted, userState);
}
private void OnCloseExpiredJobsOperationCompleted(object arg)
{
if (this.CloseExpiredJobsCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.CloseExpiredJobsCompleted(this, new CloseExpiredJobsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/CloseAllJobs", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public int CloseAllJobs()
{
return (int)Invoke("CloseAllJobs", new object[0])[0];
}
public IAsyncResult BeginCloseAllJobs(AsyncCallback callback, object asyncState)
{
return BeginInvoke("CloseAllJobs", new object[0], callback, asyncState);
}
public int EndCloseAllJobs(IAsyncResult asyncResult)
{
return (int)EndInvoke(asyncResult)[0];
}
public void CloseAllJobsAsync()
{
CloseAllJobsAsync(null);
}
public void CloseAllJobsAsync(object userState)
{
if (CloseAllJobsOperationCompleted == null)
{
CloseAllJobsOperationCompleted = OnCloseAllJobsOperationCompleted;
}
InvokeAsync("CloseAllJobs", new object[0], CloseAllJobsOperationCompleted, userState);
}
private void OnCloseAllJobsOperationCompleted(object arg)
{
if (this.CloseAllJobsCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.CloseAllJobsCompleted(this, new CloseAllJobsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/Diag", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[return: XmlElement("DiagResult", IsNullable = true)]
public LuaValue[] Diag(int type, string jobID)
{
return (LuaValue[])Invoke("Diag", new object[2] { type, jobID })[0];
}
public IAsyncResult BeginDiag(int type, string jobID, AsyncCallback callback, object asyncState)
{
return BeginInvoke("Diag", new object[2] { type, jobID }, callback, asyncState);
}
public LuaValue[] EndDiag(IAsyncResult asyncResult)
{
return (LuaValue[])EndInvoke(asyncResult)[0];
}
public void DiagAsync(int type, string jobID)
{
DiagAsync(type, jobID, null);
}
public void DiagAsync(int type, string jobID, object userState)
{
if (DiagOperationCompleted == null)
{
DiagOperationCompleted = OnDiagOperationCompleted;
}
InvokeAsync("Diag", new object[2] { type, jobID }, DiagOperationCompleted, userState);
}
private void OnDiagOperationCompleted(object arg)
{
if (this.DiagCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.DiagCompleted(this, new DiagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
[SoapDocumentMethod("http://roblox.com/DiagEx", RequestNamespace = "http://roblox.com/", ResponseNamespace = "http://roblox.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public LuaValue[] DiagEx(int type, string jobID)
{
return (LuaValue[])Invoke("DiagEx", new object[2] { type, jobID })[0];
}
public IAsyncResult BeginDiagEx(int type, string jobID, AsyncCallback callback, object asyncState)
{
return BeginInvoke("DiagEx", new object[2] { type, jobID }, callback, asyncState);
}
public LuaValue[] EndDiagEx(IAsyncResult asyncResult)
{
return (LuaValue[])EndInvoke(asyncResult)[0];
}
public void DiagExAsync(int type, string jobID)
{
DiagExAsync(type, jobID, null);
}
public void DiagExAsync(int type, string jobID, object userState)
{
if (DiagExOperationCompleted == null)
{
DiagExOperationCompleted = OnDiagExOperationCompleted;
}
InvokeAsync("DiagEx", new object[2] { type, jobID }, DiagExOperationCompleted, userState);
}
private void OnDiagExOperationCompleted(object arg)
{
if (this.DiagExCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
this.DiagExCompleted(this, new DiagExCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
public new void CancelAsync(object userState)
{
base.CancelAsync(userState);
}
}
@@ -0,0 +1,29 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
public class RenewLeaseCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
public double Result
{
get
{
RaiseExceptionIfNecessary();
return (double)results[0];
}
}
internal RenewLeaseCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState)
: base(exception, cancelled, userState)
{
this.results = results;
}
}
@@ -0,0 +1,6 @@
using System.CodeDom.Compiler;
namespace Roblox.Grid.Rcc;
[GeneratedCode("wsdl", "4.8.3928.0")]
public delegate void RenewLeaseCompletedEventHandler(object sender, RenewLeaseCompletedEventArgs e);
@@ -0,0 +1,67 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class ScriptExecution : INotifyPropertyChanged
{
private string nameField;
private string scriptField;
private LuaValue[] argumentsField;
public string name
{
get
{
return nameField;
}
set
{
nameField = value;
RaisePropertyChanged("name");
}
}
public string script
{
get
{
return scriptField;
}
set
{
scriptField = value;
RaisePropertyChanged("script");
}
}
public LuaValue[] arguments
{
get
{
return argumentsField;
}
set
{
argumentsField = value;
RaisePropertyChanged("arguments");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,52 @@
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace Roblox.Grid.Rcc;
[Serializable]
[GeneratedCode("wsdl", "4.8.3928.0")]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://roblox.com/")]
public class Status : INotifyPropertyChanged
{
private string versionField;
private int environmentCountField;
public string version
{
get
{
return versionField;
}
set
{
versionField = value;
RaisePropertyChanged("version");
}
}
public int environmentCount
{
get
{
return environmentCountField;
}
set
{
environmentCountField = value;
RaisePropertyChanged("environmentCount");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,105 @@
using System;
using Roblox.Grid.Rcc;
namespace Roblox.Grid;
public class Lua
{
public static ScriptExecution EmptyScript = NewScript("EmptyScript", "return");
public static ScriptExecution NewScript(string name, string script)
{
return NewScript(name, script, NewArgs());
}
public static ScriptExecution NewScript(string name, string script, params object[] args)
{
return NewScript(name, script, NewArgs(args));
}
public static ScriptExecution NewScript(string name, string script, LuaValue[] args)
{
ScriptExecution scriptExecution = new ScriptExecution();
scriptExecution.name = name;
scriptExecution.script = script;
scriptExecution.arguments = args ?? NewArgs();
return scriptExecution;
}
public static string ToString(LuaValue[] result)
{
string str = null;
foreach (LuaValue value in result)
{
str = ((!string.IsNullOrEmpty(str)) ? (str + ", " + value.value) : value.value);
}
return str;
}
public static void SetArg(LuaValue[] args, int index, object value)
{
LuaValue luaValue = new LuaValue();
if (value is int || value is float || value is double || value is long || value is decimal || value is short || value is ushort || value is uint || value is ulong)
{
luaValue.type = LuaType.LUA_TNUMBER;
luaValue.value = value.ToString();
}
else if (value is string)
{
luaValue.type = LuaType.LUA_TSTRING;
luaValue.value = value.ToString();
}
else if (value is bool boolean)
{
luaValue.type = LuaType.LUA_TBOOLEAN;
luaValue.value = (boolean ? "true" : "false");
}
else if (value == null)
{
luaValue.type = LuaType.LUA_TNIL;
luaValue.value = string.Empty;
}
else
{
if (!(value is LuaValue[]))
{
throw new ArgumentException("Unsupported Lua argument type " + value.GetType());
}
luaValue.type = LuaType.LUA_TTABLE;
luaValue.table = value as LuaValue[];
}
args[index] = luaValue;
}
private static object ConvertLua(LuaValue luaValue)
{
return luaValue.type switch
{
LuaType.LUA_TBOOLEAN => Convert.ToBoolean(luaValue.value),
LuaType.LUA_TNUMBER => Convert.ToDouble(luaValue.value),
LuaType.LUA_TSTRING => luaValue.value,
LuaType.LUA_TTABLE => GetValues(luaValue.table),
_ => null,
};
}
public static LuaValue[] NewArgs(params object[] args)
{
LuaValue[] newArgs = new LuaValue[args.Length];
for (int i = 0; i < args.Length; i++)
{
SetArg(newArgs, i, args[i]);
}
return newArgs;
}
public static object[] GetValues(LuaValue[] args)
{
object[] values = new object[args.Length];
for (int i = 0; i < args.Length; i++)
{
values[i] = ConvertLua(args[i]);
}
return values;
}
}
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="RCCServiceSoap">
<readerQuotas maxStringContentLength="131072"/>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:64989" binding="basicHttpBinding" bindingConfiguration="RCCServiceSoap" contract="RCC.RCCServiceSoap" name="RCCServiceSoap"/>
</client>
</system.serviceModel>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>