init commit

This commit is contained in:
zino
2021-02-16 23:07:41 +01:00
parent ec3fc78e0f
commit 12b4ef5db4
5000 changed files with 2596132 additions and 0 deletions

33
backup/upload.php Normal file
View File

@@ -0,0 +1,33 @@
<?php
// GLOBALS
global $ServerSecret;
$ServerSecret = 'e0VV7kkkYwK2';
// ARGS
if (!isset($_GET['UserID']) OR !isset($_GET['ClientSecret'])) {
return;
}
elseif ($_GET['ClientSecret'] != $GLOBALS['ServerSecret']) {
return;
}
else {
$UserID = $_GET['UserID'];
}
// VARS
$filepath = $_FILES["file"]["tmp_name"];
$OriginalFilename = $_FILES["file"]["name"];
#$UsernameDir = "/var/www/zino/pkrstarsbot/upload/$UserID";
$UsernameDir = "/home/pkrstarsbot/upload/$UserID";
// Make UserDir if not existent
if (!file_exists($UsernameDir)) {
mkdir($UsernameDir, 0755, true);
#chown($UsernameDir, 'pkrstarsbot');
}
// Move uploaded file to UserDir
move_uploaded_file($filepath, "$UsernameDir/$OriginalFilename");
#chgrp("$UsernameDir/$OriginalFilename","pkrstarsbot")
#chown("$UsernameDir/$OriginalFilename", 'pkrstarsbot');
?>

View File

@@ -0,0 +1,64 @@
<?php
class HelperFunctions {
function declareGlobalsFn () {
// Functions declared inside a function have global scope
function page_id() {
global $wp_query;
return $wp_query->post->ID;
}
function php_console_log($data) {
$output = $data;
if (is_array($output)) {
$output = implode(',', $output);
}
echo "<script>console.log( '" . $output . "' );</script>";
}
function current_url() {
return (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
}
function redirect($url, $statusCode = 303) {
header('Location: ' . $url, true, $statusCode);
die();
}
function connect_to_server($server) {
if ($server == 'zinomedia') {
return new wpdb('pkrstarsbot','ichpkrstarsbot#1337','pkrstarsbot','localhost');
}
}
function generateHiddenInputsFromArray( $data = array(), $namePrefix = '' ) {
if(!is_array($data) || empty($data)) {
return '';
}
$html = "";
$namePrefix = trim($namePrefix);
if ( is_array( $data ) && !empty($data) ) {
foreach ( $data as $key => $value) {
$keyEsc = htmlentities($key);
if($namePrefix != '') {
$keyEsc = $namePrefix."[{$keyEsc}]";
}
if(is_array($value)) {
$html .= generateHiddenInputsFromArray($value,$keyEsc);
} else {
$valueEsc = htmlentities($value);
$html .= "<input type='hidden' name='{$keyEsc}' value='{$valueEsc}' />".PHP_EOL;
}
}
}
return $html;
}
}
}
$ob = new HelperFunctions();
$ob->declareGlobalsFn();

View File

@@ -0,0 +1,60 @@
<?php
add_filter( 'wp_enqueue_scripts', 'add_user_metadata' );
function add_user_metadata() {
if (!is_user_logged_in()) {
return;
}
global $current_user;
wp_get_current_user();
// Check if user exists
$is_registered = get_user_meta( $current_user->ID, 'is_registered', true );
php_console_log('is_registered: ' . $is_registered);
if ($is_registered) {
$db_user_id = get_user_meta( $current_user->ID, 'db_user_id', true );
php_console_log('db_user_id: ' . $db_user_id);
$db_user_id = get_user_meta( $current_user->ID, 'db_user_id', true );
echo generateHiddenInputsFromArray(array(
"user_email" => $current_user->user_email,
"user_id" => $current_user->ID,
"db_user_id" => $db_user_id,
));
return;
}
php_console_log("Registering user in external db...");
$wpdb = connect_to_server('zinomedia');
// Register user in external db
$wpdb->insert('reg_users', array(
'UserName' => $current_user->user_email,
'EMail' => $current_user->user_email,
'Password' => '',
'Registered' => date("Y-m-d H:i:s"),
));
$db_user_id = $wpdb->insert_id;
// Create streamdelay
$wpdb->insert('config_user', array(
'Key' => "DelaySeconds",
'Value' => 0,
'UserID' => $db_user_id,
));
// To DOM
echo generateHiddenInputsFromArray(array(
"user_email" => $current_user->user_email,
"user_id" => $current_user->ID,
"db_user_id" => $db_user_id,
));
// Save
update_user_meta( $current_user->ID, 'db_user_id', $db_user_id );
update_user_meta( $current_user->ID, 'is_registered', 1 );
}

View File

@@ -0,0 +1,50 @@
<?php
add_filter( 'wp_enqueue_scripts', 'add_user_metadata' );
function add_user_metadata() {
if (!is_user_logged_in()) {
return;
}
global $current_user;
wp_get_current_user();
// Check if user exists
$is_registered = get_user_meta( $current_user->ID, 'is_registered', true );
php_console_log('is_registered: ' . $is_registered);
if ($is_registered) {
echo generateHiddenInputsFromArray(array(
"wp_user_id" => $current_user->ID,
));
return;
}
php_console_log("Registering user in external db...");
$wpdb = connect_to_server('zinomedia');
// Register user in external db
$wpdb->insert('reg_users', array(
'UserName' => $current_user->user_email,
'EMail' => $current_user->user_email,
'Registered' => date("Y-m-d H:i:s"),
'WP_ID' => $current_user->ID,
));
$db_user_id = $wpdb->insert_id;
// Create streamdelay
$wpdb->insert('config_user', array(
'Key' => "DelaySeconds",
'Value' => 0,
'UserID' => $db_user_id,
));
update_user_meta( $current_user->ID, 'is_registered', 1 );
echo generateHiddenInputsFromArray(array(
"user_id" => $current_user->ID,
));
}

View File

@@ -0,0 +1,116 @@
<?php
add_action( 'rest_api_init', 'register_api_client' );
function register_api_client() {
register_rest_route('client/v1', 'streamdelay', [
'methods' => 'POST',
'callback' => 'streamdelay',
'args' => array(
'delay' => array(
'validate_callback' => 'validate_numeric',
'required' => true,
),
'dbuserid' => array(
'validate_callback' => 'validate_numeric',
'required' => true,
),
),
'permission_callback' => function() {
return is_user_logged_in();
},
] );
register_rest_route('client/v1', 'dbuserid', [
'methods' => 'POST',
'callback' => 'dbuserid',
'args' => array(
'email' => array(
'validate_callback' => 'validate_emailaddress',
'required' => true,
),
),
'permission_callback' => function() {
return is_user_logged_in();
},
] );
register_rest_route('client/v1', 'dbuseridwp', [
'methods' => 'POST',
'callback' => 'dbuseridwp',
'args' => array(
'wp_user_id' => array(
'validate_callback' => 'validate_numeric',
'required' => true,
),
),
'permission_callback' => function() {
return is_user_logged_in();
},
] );
register_rest_route('client/v1', 'logoutuser', [
'methods' => 'POST',
'callback' => 'logoutuser',
'permission_callback' => function() {
return is_user_logged_in();
},
] );
}
function validate_emailaddress($param, $request, $key) {
return filter_var($param, FILTER_VALIDATE_EMAIL) !== false;
}
function validate_numeric($param, $request, $key) {
return is_numeric($param);
}
function logoutuser() {
wp_logout();
$response = new WP_REST_Response("foobar");
$response->set_status(200);
return $response;
}
function dbuseridwp($request) {
$wp_user_id = $request->get_param('wp_user_id');
$wpdb = connect_to_server('zinomedia');
$db_user_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID from reg_users where WP_ID = %d", $wp_user_id ) );
$response = new WP_REST_Response($db_user_id);
$response->set_status(200);
return $response;
}
function dbuserid($request) {
$email = $request->get_param('email');
$wpdb = connect_to_server('zinomedia');
$db_user_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID from reg_users where EMail = %s", $email ) );
$response = new WP_REST_Response($db_user_id);
$response->set_status(200);
return $response;
}
function streamdelay($request) {
$parameter = $request->get_params();
$delay = $request->get_param('delay');
$db_user_id = $request->get_param('db_user_id');
$wpdb = connect_to_server('zinomedia');
$wpdb->update('config_user',
array(
'Value' => $delay,
),
array(
"UserID" => $db_user_id,
)
);
$response = new WP_REST_Response($parameter);
$response->set_status(200);
return $response;
}

View File

@@ -0,0 +1,12 @@
<?php
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts' );
function my_enqueue_scripts() {
if (!is_user_logged_in()) {
return;
}
// Register custom variables for the AJAX script.
wp_localize_script( 'script', 'myScriptVars', [
'root' => esc_url_raw( rest_url() ),
'nonce' => wp_create_nonce( 'wp_rest' ),
] );
}

View File

@@ -0,0 +1,34 @@
<?php
add_action( 'admin_enqueue_scripts', 'my_hide_memberpressactivate' );
function my_hide_memberpressactivate() {
?>
<script>
// START JAVASCRIPT
document.addEventListener("DOMContentLoaded", function(event) {
console.log('executing now');
//wait_for_class('error', 'hide_mbpr_error');
hide_mbpr_error();
});
function hide_mbpr_error() {
if( jQuery('.error').length ) {
if( jQuery('.error')[0].textContent == "MemberPress doesn't have a valid license key installed. Go to the MemberPress activation page to activate your license or go to memberpress.com to get one." ) {
jQuery('.error')[0].outerHTML = '';
}
}
}
function wait_for_class(selector, fnName) {
if (jQuery('.' + selector).length) {
console.log('ready');
window[fnName](selector);
} else {
setTimeout(function() {
wait_for_class(selector, fnName);
}, 100);
}
}
// END JAVASCRIPT
</script>
<?php
}

View File

@@ -0,0 +1,18 @@
<?php
add_filter( 'wp_enqueue_scripts', 'js_inject_jqueryui' );
function js_inject_jqueryui() {
if (!is_user_logged_in()) {
return;
}
if(page_id() === 2) {
?>
<script>
var script = document.createElement('script');
script.setAttribute('src', 'https://code.jquery.com/ui/1.12.1/jquery-ui.min.js');
script.setAttribute('integrity', 'sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=');
script.setAttribute('crossorigin', 'anonymous');
document.getElementsByTagName('head')[0].appendChild(script);
</script>
<?php
}
}

View File

@@ -0,0 +1,5 @@
<?php
if (!is_user_logged_in()) {
return;
}
wp_enqueue_script( 'script', 'https://pkrstarsbot.zinomedia.de/www/client_webapp/src/file-system-access-api.js', 'jQuery', 1.0, true);

View File

@@ -0,0 +1,2 @@
<?php
wp_enqueue_style( 'style', 'https://pkrstarsbot.zinomedia.de/www/client_webapp/css/style.css',false,'1.0','all');

View File

@@ -0,0 +1,29 @@
<?php
add_action( 'wp_enqueue_scripts', 'my_getUserInfo' );
function my_getUserInfo() {
if (!is_user_logged_in()) {
return;
}
if(page_id() === 2) {
global $current_user;
wp_get_current_user();
js_manipulate($current_user);
}
}
function js_manipulate($current_user) {
?>
<script>
// START JAVASCRIPT
document.addEventListener("DOMContentLoaded", function(event) {
const email = "<?php echo $current_user->user_email ?>";
jQuery('#textLoggedInAs .fl-rich-text p').ready(function() {
jQuery("#textEmail .fl-rich-text")[0].textContent = email;
});
});
// END JAVASCRIPT
</script>
<?php
}

View File

@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30503.244
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PokerStarsBotClientv2", "PokerStarsBotClientv2\PokerStarsBotClientv2.csproj", "{B25C11D8-E736-4C7E-9F74-977EE5C669C9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B25C11D8-E736-4C7E-9F74-977EE5C669C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B25C11D8-E736-4C7E-9F74-977EE5C669C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B25C11D8-E736-4C7E-9F74-977EE5C669C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B25C11D8-E736-4C7E-9F74-977EE5C669C9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B3D2A35E-A3E3-4199-8A8C-5601E7190ACF}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="PokerStarsBotClientv2.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<userSettings>
<PokerStarsBotClientv2.Properties.Settings>
<setting name="UserName" serializeAs="String">
<value />
</setting>
<setting name="Password" serializeAs="String">
<value />
</setting>
<setting name="HandhistoryDir" serializeAs="String">
<value />
</setting>
<setting name="HandhistoryDirUploadAll" serializeAs="String">
<value />
</setting>
<setting name="UploadAllTimeStamp" serializeAs="String">
<value />
</setting>
<setting name="DelaySeconds" serializeAs="String">
<value>0</value>
</setting>
<setting name="DelayEnabled" serializeAs="String">
<value>False</value>
</setting>
</PokerStarsBotClientv2.Properties.Settings>
</userSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<Costura />
</Weavers>

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="Costura" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="IncludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged64Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="PreloadOrder" type="xs:string">
<xs:annotation>
<xs:documentation>The order of preloaded assemblies, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="CreateTemporaryAssemblies" type="xs:boolean">
<xs:annotation>
<xs:documentation>This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeDebugSymbols" type="xs:boolean">
<xs:annotation>
<xs:documentation>Controls if .pdbs for reference assemblies are also embedded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCompression" type="xs:boolean">
<xs:annotation>
<xs:documentation>Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCleanup" type="xs:boolean">
<xs:annotation>
<xs:documentation>As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LoadAtModuleInit" type="xs:boolean">
<xs:annotation>
<xs:documentation>Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreSatelliteAssemblies" type="xs:boolean">
<xs:annotation>
<xs:documentation>Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged64Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PreloadOrder" type="xs:string">
<xs:annotation>
<xs:documentation>The order of preloaded assemblies, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,193 @@
namespace PokerStarsBotClientv2.Forms
{
partial class FormRun
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.labelSelectHH = new System.Windows.Forms.Label();
this.textBoxHH = new System.Windows.Forms.TextBox();
this.btnSelect = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.customInstaller1 = new MySql.Data.MySqlClient.CustomInstaller();
this.labelStreamDelay = new System.Windows.Forms.Label();
this.labelSeconds = new System.Windows.Forms.Label();
this.toggleDelay = new PokerStarsBotClientv2.Forms.MyCheckBox();
this.toggleRun = new PokerStarsBotClientv2.Forms.MyCheckBox();
this.numericUpDownDelay = new System.Windows.Forms.NumericUpDown();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDelay)).BeginInit();
this.SuspendLayout();
//
// labelSelectHH
//
this.labelSelectHH.AutoSize = true;
this.labelSelectHH.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelSelectHH.Location = new System.Drawing.Point(86, 51);
this.labelSelectHH.Name = "labelSelectHH";
this.labelSelectHH.Size = new System.Drawing.Size(378, 20);
this.labelSelectHH.TabIndex = 0;
this.labelSelectHH.Text = "Select PokerStars handhistory directory of your user:";
//
// textBoxHH
//
this.textBoxHH.BackColor = System.Drawing.Color.White;
this.textBoxHH.Location = new System.Drawing.Point(90, 85);
this.textBoxHH.Name = "textBoxHH";
this.textBoxHH.Size = new System.Drawing.Size(374, 20);
this.textBoxHH.TabIndex = 1;
//
// btnSelect
//
this.btnSelect.BackColor = System.Drawing.Color.DeepSkyBlue;
this.btnSelect.FlatAppearance.BorderSize = 0;
this.btnSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSelect.Location = new System.Drawing.Point(461, 85);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(92, 20);
this.btnSelect.TabIndex = 2;
this.btnSelect.Text = "Select";
this.btnSelect.UseVisualStyleBackColor = false;
this.btnSelect.Click += new System.EventHandler(this.buttonSelect_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(86, 159);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(39, 20);
this.label1.TabIndex = 3;
this.label1.Text = "Run";
//
// labelStreamDelay
//
this.labelStreamDelay.AutoSize = true;
this.labelStreamDelay.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelStreamDelay.Location = new System.Drawing.Point(86, 264);
this.labelStreamDelay.Name = "labelStreamDelay";
this.labelStreamDelay.Size = new System.Drawing.Size(105, 20);
this.labelStreamDelay.TabIndex = 7;
this.labelStreamDelay.Text = "Stream Delay";
//
// labelSeconds
//
this.labelSeconds.AutoSize = true;
this.labelSeconds.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelSeconds.Location = new System.Drawing.Point(370, 294);
this.labelSeconds.Name = "labelSeconds";
this.labelSeconds.Size = new System.Drawing.Size(72, 20);
this.labelSeconds.TabIndex = 9;
this.labelSeconds.Text = "Seconds";
//
// toggleDelay
//
this.toggleDelay.Appearance = System.Windows.Forms.Appearance.Button;
this.toggleDelay.BackColor = System.Drawing.Color.Transparent;
this.toggleDelay.FlatAppearance.BorderColor = System.Drawing.Color.RoyalBlue;
this.toggleDelay.FlatAppearance.BorderSize = 2;
this.toggleDelay.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.toggleDelay.Location = new System.Drawing.Point(90, 297);
this.toggleDelay.Name = "toggleDelay";
this.toggleDelay.Padding = new System.Windows.Forms.Padding(6);
this.toggleDelay.Size = new System.Drawing.Size(61, 25);
this.toggleDelay.TabIndex = 8;
this.toggleDelay.Text = "myCheckBox2";
this.toggleDelay.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.toggleDelay.UseVisualStyleBackColor = false;
this.toggleDelay.CheckedChanged += new System.EventHandler(this.toggleDelay_CheckedChanged);
//
// toggleRun
//
this.toggleRun.Appearance = System.Windows.Forms.Appearance.Button;
this.toggleRun.BackColor = System.Drawing.Color.Transparent;
this.toggleRun.FlatAppearance.BorderColor = System.Drawing.Color.RoyalBlue;
this.toggleRun.FlatAppearance.BorderSize = 2;
this.toggleRun.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.toggleRun.Location = new System.Drawing.Point(90, 192);
this.toggleRun.Name = "toggleRun";
this.toggleRun.Padding = new System.Windows.Forms.Padding(6);
this.toggleRun.Size = new System.Drawing.Size(61, 25);
this.toggleRun.TabIndex = 6;
this.toggleRun.Text = "myCheckBox1";
this.toggleRun.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.toggleRun.UseVisualStyleBackColor = false;
this.toggleRun.CheckedChanged += new System.EventHandler(this.toggleRun_CheckedChanged);
//
// numericUpDownDelay
//
this.numericUpDownDelay.BackColor = System.Drawing.Color.White;
this.numericUpDownDelay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numericUpDownDelay.Location = new System.Drawing.Point(461, 297);
this.numericUpDownDelay.Maximum = new decimal(new int[] {
9999,
0,
0,
0});
this.numericUpDownDelay.Name = "numericUpDownDelay";
this.numericUpDownDelay.Size = new System.Drawing.Size(92, 20);
this.numericUpDownDelay.TabIndex = 11;
this.numericUpDownDelay.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.numericUpDownDelay.ValueChanged += new System.EventHandler(this.numericUpDownDelay_ValueChanged);
this.numericUpDownDelay.Leave += new System.EventHandler(this.numericUpDownDelay_Leave);
//
// FormRun
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(686, 422);
this.Controls.Add(this.numericUpDownDelay);
this.Controls.Add(this.labelSeconds);
this.Controls.Add(this.toggleDelay);
this.Controls.Add(this.labelStreamDelay);
this.Controls.Add(this.toggleRun);
this.Controls.Add(this.label1);
this.Controls.Add(this.btnSelect);
this.Controls.Add(this.textBoxHH);
this.Controls.Add(this.labelSelectHH);
this.Margin = new System.Windows.Forms.Padding(1);
this.Name = "FormRun";
this.Text = "FormRun";
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDelay)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label labelSelectHH;
private System.Windows.Forms.TextBox textBoxHH;
private System.Windows.Forms.Button btnSelect;
private System.Windows.Forms.Label label1;
private MySql.Data.MySqlClient.CustomInstaller customInstaller1;
private MyCheckBox toggleRun;
private MyCheckBox toggleDelay;
private System.Windows.Forms.Label labelStreamDelay;
private System.Windows.Forms.Label labelSeconds;
private System.Windows.Forms.NumericUpDown numericUpDownDelay;
}
}

View File

@@ -0,0 +1,195 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.IO;
using System.Net;
using System.Collections.Specialized;
using MySql.Data.MySqlClient;
using System.Drawing.Text;
using PokerStarsBotClientv2;
namespace PokerStarsBotClientv2.Forms
{
public partial class FormRun : Form
{
// Fields
private int LoopIntervalMS = 1000; // worker sleep duration in milliseconds in checking loop
private List<FileInfo> UploadList = new List<FileInfo>();
public Dictionary<string, DateTime> dictionary = new Dictionary<string, DateTime>();
public FormRun()
{
InitializeComponent();
LoadSavedSettings(); // load handhistory dir, delay in seconds
}
private void LoadSavedSettings()
{
if (!string.IsNullOrEmpty(Properties.Settings.Default.HandhistoryDir))
{
textBoxHH.Text = Properties.Settings.Default.HandhistoryDir;
}
if (!Properties.Settings.Default.DelaySeconds.Equals(null))
{
numericUpDownDelay.Value = Properties.Settings.Default.DelaySeconds;
}
if (Properties.Settings.Default.DelayEnabled)
{
toggleDelay.Checked = true;
}
else
{
toggleDelay.Checked = false;
}
/* if (string.IsNullOrEmpty(Properties.Settings.Default.UploadAllTimeStamp))
{
UploadAll_label_uploaded.Text = Properties.Settings.Default.UploadAllTimeStamp;
}*/
/*if (string.IsNullOrEmpty(Properties.Settings.Default.HandhistoryDirUploadAll))
{
UploadAll_metroTextBox.Text = Properties.Settings.Default.HandhistoryDirUploadAll;
}*/
}
private void toggleRun_CheckedChanged(object sender, EventArgs e)
{
if (toggleRun.Checked)
{
// Check if handhistory dir is valid
if (!HelperMethods.is_valid_run_dir(textBoxHH))
{
toggleRun.Checked = false;
return;
}
// Spawn backgroundworker
BackgroundWorker backgroundworker = new BackgroundWorker
{
WorkerReportsProgress = true,
WorkerSupportsCancellation = true,
};
backgroundworker.DoWork += BackgroundWorkerOnDoWork;
backgroundworker.ProgressChanged += BackgroundWorkerOnProgressChanged;
backgroundworker.RunWorkerCompleted += BackgroundWorkerCompleted;
backgroundworker.RunWorkerAsync();
// Disable ChooseDir button
btnSelect.Enabled = false;
}
else
{
System.Console.WriteLine("Unchecked Run");
btnSelect.Enabled = true; // Enable ChooseDir button
}
}
private void BackgroundWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// Worker completed
}
private void BackgroundWorkerOnProgressChanged(object sender, ProgressChangedEventArgs e)
{
System.Console.WriteLine(e.ProgressPercentage);
}
private void BackgroundWorkerOnDoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = (BackgroundWorker)sender;
while (!worker.CancellationPending)
{
Console.WriteLine("\n");
Console.WriteLine("-------------------------------");
HelperMethods.DirectoryListing(textBoxHH.Text, dictionary, UploadList);
HelperMethods.UploadFiles(UploadList);
System.Threading.Thread.Sleep(LoopIntervalMS);
if (toggleRun.Checked == false)
{
worker.CancelAsync();
}
}
}
// FileBrowserDialog after clicking Select button
private void buttonSelect_Click(object sender, EventArgs e)
{
using (var fbd = new FolderBrowserDialog())
{
DialogResult result = fbd.ShowDialog();
if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
{
string[] files = Directory.GetFiles(fbd.SelectedPath);
//System.Windows.Forms.MessageBox.Show("Files found: " + files.Length.ToString(), "Message");
textBoxHH.Text = fbd.SelectedPath;
}
}
}
private void toggleDelay_CheckedChanged(object sender, EventArgs e)
{
if (toggleDelay.Checked)
{
numericUpDownDelay.Enabled = true;
Properties.Settings.Default.DelayEnabled = true;
Properties.Settings.Default.Save();
}
else
{
numericUpDownDelay.Enabled = false;
Properties.Settings.Default.DelayEnabled = false;
Properties.Settings.Default.Save();
}
}
private void numericUpDownDelay_ValueChanged(object sender, EventArgs e)
{
// Save
Properties.Settings.Default.DelaySeconds = numericUpDownDelay.Value;
Properties.Settings.Default.Save();
}
private void numericUpDownDelay_Leave(object sender, EventArgs e)
{
// Refresh delay in DB
HelperMethods.SQLStreamDelay(numericUpDownDelay.Value);
}
}
public class MyCheckBox : CheckBox
{
public MyCheckBox()
{
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
Padding = new Padding(6);
}
protected override void OnPaint(PaintEventArgs e)
{
this.OnPaintBackground(e);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
using (var path = new GraphicsPath())
{
var d = Padding.All;
var r = this.Height - 2 * d;
path.AddArc(d, d, r, r, 90, 180);
path.AddArc(this.Width - r - d, d, r, r, -90, 180);
path.CloseFigure();
e.Graphics.FillPath(Checked ? Brushes.DarkGray : Brushes.LightGray, path);
r = Height - 1;
var rect = Checked ? new Rectangle(Width - r - 1, 0, r, r)
: new Rectangle(0, 0, r, r);
e.Graphics.FillEllipse(Checked ? Brushes.DeepSkyBlue : Brushes.WhiteSmoke, rect);
}
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="customInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,150 @@
namespace PokerStarsBotClientv2.Forms
{
partial class FormUploadAll
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.labelUpload = new System.Windows.Forms.Label();
this.btnSelect = new System.Windows.Forms.Button();
this.textBoxHH = new System.Windows.Forms.TextBox();
this.labelSelectHH = new System.Windows.Forms.Label();
this.toggleRun = new PokerStarsBotClientv2.Forms.MyCheckBox();
this.labelUploadAll = new System.Windows.Forms.Label();
this.labelUploadAllStatus = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// labelUpload
//
this.labelUpload.AutoSize = true;
this.labelUpload.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelUpload.Location = new System.Drawing.Point(90, 48);
this.labelUpload.Name = "labelUpload";
this.labelUpload.Size = new System.Drawing.Size(464, 20);
this.labelUpload.TabIndex = 0;
this.labelUpload.Text = "Use this feature to upload your whole handhistory directory once.";
//
// btnSelect
//
this.btnSelect.BackColor = System.Drawing.Color.DeepSkyBlue;
this.btnSelect.FlatAppearance.BorderSize = 0;
this.btnSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSelect.Location = new System.Drawing.Point(464, 167);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(92, 20);
this.btnSelect.TabIndex = 5;
this.btnSelect.Text = "Select";
this.btnSelect.UseVisualStyleBackColor = false;
this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
//
// textBoxHH
//
this.textBoxHH.BackColor = System.Drawing.Color.White;
this.textBoxHH.Location = new System.Drawing.Point(93, 167);
this.textBoxHH.Name = "textBoxHH";
this.textBoxHH.Size = new System.Drawing.Size(374, 20);
this.textBoxHH.TabIndex = 4;
//
// labelSelectHH
//
this.labelSelectHH.AutoSize = true;
this.labelSelectHH.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelSelectHH.Location = new System.Drawing.Point(89, 133);
this.labelSelectHH.Name = "labelSelectHH";
this.labelSelectHH.Size = new System.Drawing.Size(378, 20);
this.labelSelectHH.TabIndex = 3;
this.labelSelectHH.Text = "Select PokerStars handhistory directory of your user:";
//
// toggleRun
//
this.toggleRun.Appearance = System.Windows.Forms.Appearance.Button;
this.toggleRun.BackColor = System.Drawing.Color.Transparent;
this.toggleRun.FlatAppearance.BorderColor = System.Drawing.Color.RoyalBlue;
this.toggleRun.FlatAppearance.BorderSize = 2;
this.toggleRun.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.toggleRun.Location = new System.Drawing.Point(94, 279);
this.toggleRun.Name = "toggleRun";
this.toggleRun.Padding = new System.Windows.Forms.Padding(6);
this.toggleRun.Size = new System.Drawing.Size(61, 25);
this.toggleRun.TabIndex = 8;
this.toggleRun.Text = "myCheckBox1";
this.toggleRun.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.toggleRun.UseVisualStyleBackColor = false;
this.toggleRun.CheckedChanged += new System.EventHandler(this.toggleRun_CheckedChanged);
//
// labelUploadAll
//
this.labelUploadAll.AutoSize = true;
this.labelUploadAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelUploadAll.Location = new System.Drawing.Point(90, 246);
this.labelUploadAll.Name = "labelUploadAll";
this.labelUploadAll.Size = new System.Drawing.Size(81, 20);
this.labelUploadAll.TabIndex = 7;
this.labelUploadAll.Text = "Upload All";
//
// labelUploadAllStatus
//
this.labelUploadAllStatus.AutoSize = true;
this.labelUploadAllStatus.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
this.labelUploadAllStatus.Location = new System.Drawing.Point(231, 279);
this.labelUploadAllStatus.Name = "labelUploadAllStatus";
this.labelUploadAllStatus.Size = new System.Drawing.Size(0, 20);
this.labelUploadAllStatus.TabIndex = 9;
//
// FormUploadAll
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(686, 422);
this.Controls.Add(this.labelUploadAllStatus);
this.Controls.Add(this.toggleRun);
this.Controls.Add(this.labelUploadAll);
this.Controls.Add(this.btnSelect);
this.Controls.Add(this.textBoxHH);
this.Controls.Add(this.labelSelectHH);
this.Controls.Add(this.labelUpload);
this.Margin = new System.Windows.Forms.Padding(1, 1, 1, 1);
this.MaximumSize = new System.Drawing.Size(702, 461);
this.MinimumSize = new System.Drawing.Size(702, 461);
this.Name = "FormUploadAll";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label labelUpload;
private System.Windows.Forms.Button btnSelect;
private System.Windows.Forms.TextBox textBoxHH;
private System.Windows.Forms.Label labelSelectHH;
private MyCheckBox toggleRun;
private System.Windows.Forms.Label labelUploadAll;
private System.Windows.Forms.Label labelUploadAllStatus;
}
}

View File

@@ -0,0 +1,127 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace PokerStarsBotClientv2.Forms
{
public partial class FormUploadAll : Form
{
// Fields
public int UploadAllFileCount = 0;
// Constructor
public FormUploadAll()
{
InitializeComponent();
LoadSavedSettings();
}
// Methods
private void LoadSavedSettings()
{
if (!string.IsNullOrEmpty(Properties.Settings.Default.HandhistoryDir))
{
textBoxHH.Text = Properties.Settings.Default.HandhistoryDir;
}
}
private void btnSelect_Click(object sender, EventArgs e)
{
using (var fbd = new FolderBrowserDialog())
{
DialogResult result = fbd.ShowDialog();
if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
{
string[] files = Directory.GetFiles(fbd.SelectedPath);
textBoxHH.Text = fbd.SelectedPath;
}
}
}
private void toggleRun_CheckedChanged(object sender, EventArgs e)
{
if (toggleRun.Checked)
{
// Check if handhistory dir is valid
if (!HelperMethods.is_valid_run_dir(textBoxHH))
{
toggleRun.Checked = false;
return;
}
// Spawn backgroundworker
BackgroundWorker backgroundworker = new BackgroundWorker
{
WorkerReportsProgress = true,
WorkerSupportsCancellation = true,
};
backgroundworker.DoWork += BackgroundWorkerUploadAllOnDoWork;
backgroundworker.RunWorkerCompleted += BackgroundWorkerUploadAllCompleted;
backgroundworker.RunWorkerAsync();
btnSelect.Enabled = false; // Disable Select button
labelUploadAllStatus.Text = "Uploading ...";
}
}
private void BackgroundWorkerUploadAllOnDoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = (BackgroundWorker)sender;
DirectoryInfo d = new DirectoryInfo(textBoxHH.Text);
FileInfo[] Files = d.GetFiles("*.txt");
List<FileInfo> UploadAllList = new List<FileInfo>();
foreach (FileInfo file in Files)
{
if (!worker.CancellationPending)
{
if (toggleRun.Checked == false)
{
worker.CancelAsync();
}
// File-by-File upload
UploadAllList.Clear();
// Update the last write time.
File.SetLastWriteTime(file.FullName, DateTime.Now);
// Add to UploadAllList
UploadAllList.Add(file);
// Upload files
HelperMethods.UploadFiles(UploadAllList);
UploadAllFileCount++;
}
else
{
return;
}
}
}
private void BackgroundWorkerUploadAllCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// Done messages
string UploadAllTimeStamp = UploadAllFileCount + " files successfully uploaded @ " + DateTime.Now.ToString("yyyy/dd/M HH:mm:ss");
labelUploadAllStatus.Text = UploadAllTimeStamp;
MessageBox.Show(UploadAllTimeStamp);
// Save
Properties.Settings.Default.UploadAllTimeStamp = UploadAllTimeStamp;
Properties.Settings.Default.Save();
// Reset
UploadAllFileCount = 0;
toggleRun.Checked = false;
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PokerStarsBotClientv2
{
class Globals
{
private static int _fileNotOlderThanMin = 0;
private static int _userID = 0;
private static string _recentVersion = "";
private static string _localVersion = "0.6.0";
private static string _pkrstarsbotURL = "https://zinomedia.de/pokerstarsbot/";
private static string _uploadURL = " https://zinomedia.de/pkrstarsbot/upload.php";
private static string _clientSecret = "e0VV7kkkYwK2";
private static int _uploadFileSizeLimitBytes = 10485760; // ~ 10,5MB
private static string _mysqlServer = "zinomedia.de";
private static string _mysqlUser = "pkrstarsbot";
private static string _mysqlPassword = "ichpkrstarsbot#1337";
private static string _mysqlDatabase = "pkrstarsbot";
public static string MySQLServer
{
get { return _mysqlServer; }
set { _mysqlServer = value; }
}
public static string MySQLUser
{
get { return _mysqlUser; }
set { _mysqlUser = value; }
}
public static string MySQLPassword
{
get { return _mysqlPassword; }
set { _mysqlPassword = value; }
}
public static string MySQLDatabase
{
get { return _mysqlDatabase; }
set { _mysqlDatabase = value; }
}
public static int FileNotOlderThanMin
{
get { return _fileNotOlderThanMin; }
set { _fileNotOlderThanMin = value; }
}
public static int UserID
{
get { return _userID; }
set { _userID = value; }
}
public static string RecentVersion
{
get { return _recentVersion; }
set { _recentVersion = value; }
}
public static string LocalVersion
{
get { return _localVersion; }
set { _localVersion = value; }
}
public static string PkrStarsBotURL
{
get { return _pkrstarsbotURL; }
set { _pkrstarsbotURL = value; }
}
public static string uploadURL
{
get { return _uploadURL; }
set { _uploadURL = value; }
}
public static string ClientSecret
{
get { return _clientSecret; }
set { _clientSecret = value; }
}
public static int UploadFileSizeLimitBytes
{
get { return _uploadFileSizeLimitBytes; }
set { _uploadFileSizeLimitBytes = value; }
}
// Methods
}
}

View File

@@ -0,0 +1,296 @@
using System;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
using System.IO;
using System.Collections.Generic;
using System.Net;
using System.Collections.Specialized;
using System.Windows.Forms;
namespace PokerStarsBotClientv2
{
class HelperMethods
{
// Methods
public static void UpdateInsertSQL(string query)
{
try
{
var dbCon = DBConnection.Instance();
if (dbCon.IsConnect())
{
// Execute Query
using (var cmd = new MySqlCommand(query, dbCon.Connection))
{
cmd.ExecuteReader();
}
dbCon.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
public static void SQLStreamDelay(decimal delay)
{
int UserID = Globals.UserID;
string InsertQuery = "INSERT INTO `pkrstarsbot`.`config_user` (`UserID` ,`Key`) SELECT " + UserID + ", 'DelaySeconds' FROM dual WHERE NOT EXISTS (SELECT 1 FROM `pkrstarsbot`.`config_user` WHERE UserID = " + UserID + " AND `Key` = 'DelaySeconds')";
UpdateInsertSQL(InsertQuery);
string query = "UPDATE `pkrstarsbot`.`config_user` SET `Value` = '" + delay + "' WHERE `config_user`.`UserID` = " + UserID + ";";
UpdateInsertSQL(query);
}
public static DataTable GetSQLDataTable(string query)
{
DataTable dt = new DataTable();
try
{
var dbCon = DBConnection.Instance();
if (dbCon.IsConnect())
{
// Execute Query
var cmd = new MySqlCommand(query, dbCon.Connection);
using (MySqlDataReader dr = cmd.ExecuteReader())
{
dt.Load(dr);
}
dbCon.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
return dt;
}
public static void GetUserConfigFromDB()
{
// Get user config from table config
string query = "SELECT * FROM `config`";
DataTable dt = HelperMethods.GetSQLDataTable(query);
int FileNotOlderThanMin = dt.Rows[0].Field<Int32>("Value");
string RecentVersion = dt.Rows[1].Field<string>("Value_String");
// Get user ID from table reg_users
query = "SELECT ID FROM `reg_users` WHERE `EMail` = '" + Properties.Settings.Default.UserName + "'";
DataTable dtID = HelperMethods.GetSQLDataTable(query);
int UserID = dtID.Rows[0].Field<Int32>("ID");
// Globals
Globals.UserID = UserID;
Globals.FileNotOlderThanMin = FileNotOlderThanMin;
Globals.RecentVersion = RecentVersion;
Console.WriteLine("UserID (global): " + Globals.UserID);
Console.WriteLine("FileNotOlderThanMin (global): " + Globals.FileNotOlderThanMin);
Console.WriteLine("RecentVersion (global): " + Globals.RecentVersion);
}
public static void GetConfigFromDB()
{
// Get user config from table config
string query = "SELECT * FROM `config`";
DataTable dt = HelperMethods.GetSQLDataTable(query);
int FileNotOlderThanMin = dt.Rows[0].Field<Int32>("Value");
string RecentVersion = dt.Rows[1].Field<string>("Value_String");
// Globals
Globals.FileNotOlderThanMin = FileNotOlderThanMin;
Globals.RecentVersion = RecentVersion;
Console.WriteLine("FileNotOlderThanMin (global): " + Globals.FileNotOlderThanMin);
Console.WriteLine("RecentVersion (global): " + Globals.RecentVersion);
}
public static void DirectoryListing(string dir, Dictionary<string, DateTime> dictionary, List<FileInfo> UploadList)
{
DirectoryInfo d = new DirectoryInfo(dir);
FileInfo[] Files = d.GetFiles("*.txt");
foreach (FileInfo file in Files)
{
System.Console.WriteLine(file);
// Files in range of FileNotOlderThanMin
if (file.LastWriteTime < DateTime.Now.AddMinutes(-Globals.FileNotOlderThanMin))
{
System.Console.WriteLine("\t-> not recent: Older than " + Globals.FileNotOlderThanMin + " minutes");
}
else
{
// Recent files modtime check
System.Console.WriteLine("\t-> is recent");
if (dictionary.ContainsKey(file.Name) == true)
{
DateTime OldModTime = dictionary[file.Name];
DateTime NewModTime = file.LastWriteTime;
int result = DateTime.Compare(OldModTime, NewModTime);
if (result == 0)
{
System.Console.WriteLine("\t-> already uploaded");
System.Console.WriteLine("\t-> unchanged | LastWriteTime: " + file.LastWriteTime);
}
else
{
System.Console.WriteLine("\t-> changed: ModTime has changed, adding to upload list...");
dictionary[file.Name] = NewModTime;
UploadList.Add(file);
}
}
else
{
System.Console.WriteLine("\t-> adding file to dictionary.");
dictionary.Add(file.Name, file.LastWriteTime);
UploadList.Add(file);
}
}
}
//return (UploadList, dictionary);
}
public static void UploadFiles(List<FileInfo> UploadList)
{
bool Uploading = false;
Console.WriteLine("\nUploadList:");
bool isEmpty = !UploadList.Any();
if (isEmpty)
{
System.Console.WriteLine("\t-> is empty.");
}
else if (Uploading)
{
System.Console.WriteLine("\t-> currently uploading...");
}
else
{
System.Console.WriteLine("\t-> contains elements. Starting upload...");
Uploading = true;
WebClient client = new WebClient();
client.Encoding = Encoding.UTF8;
client.Credentials = CredentialCache.DefaultCredentials;
NameValueCollection parameters = new NameValueCollection();
parameters.Add("UserID", Globals.UserID.ToString());
parameters.Add("ClientSecret", Globals.ClientSecret);
client.QueryString = parameters;
for (int i = UploadList.Count - 1; i >= 0; i--)
{
// Current fileinfo object
FileInfo file = UploadList[i];
if (file.Length <= Globals.UploadFileSizeLimitBytes) // Check if file is too large
{
// Upload via webclient post with parameters
try
{
var responseBytes = client.UploadFile(Globals.uploadURL, "POST", file.FullName);
string Httpresponse = Encoding.ASCII.GetString(responseBytes);
System.Threading.Thread.Sleep(500);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
else
{
System.Console.WriteLine("\t-> File is too large to upload.");
}
// Remove uploaded item
UploadList.RemoveAt(i);
}
client.Dispose();
Uploading = false;
}
//return UploadList;
}
public static bool is_valid_run_dir(System.Windows.Forms.TextBox textbox)
{
var path = textbox.Text;
if (Directory.Exists(path))
{
System.Console.WriteLine("Directory exists: " + path);
Properties.Settings.Default.HandhistoryDir = path;
Properties.Settings.Default.Save();
return true;
}
else
{
System.Console.WriteLine("Directory does not exist: " + path);
MessageBox.Show("Selected handhistory directory does not exist.\nPlease select a valid directory.", "Directory not found", MessageBoxButtons.OK, MessageBoxIcon.Error);
textbox.Clear();
Properties.Settings.Default.HandhistoryDir = string.Empty;
Properties.Settings.Default.Save();
return false;
}
}
public static void MinimizeToTray(System.Windows.Forms.Form form) {
System.IO.Stream st;
System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
st = a.GetManifestResourceStream("PokerStarsBotClientv2.Properties.pkrstarsbot.ico");
System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
ni.Icon = new System.Drawing.Icon(st);
ni.Visible = true;
ni.DoubleClick +=
delegate (object sender, EventArgs args)
{
form.WindowState = FormWindowState.Minimized;
form.Show();
form.WindowState = System.Windows.Forms.FormWindowState.Normal;
};
}
}
class DBConnection
{
private MySqlConnection connection = null;
public MySqlConnection Connection
{
get { return connection; }
}
private static DBConnection _instance = null;
public static DBConnection Instance()
{
if (_instance == null)
_instance = new DBConnection();
return _instance;
}
public bool IsConnect()
{
bool result = true;
if (Connection == null)
{
if ((Globals.MySQLDatabase ?? Globals.MySQLPassword ?? Globals.MySQLServer ?? Globals.MySQLUser) == null)
{
return false;
}
string connstring = string.Format(@"server={0};user id={1};persistsecurityinfo=True;database={2};password={3}", Globals.MySQLServer, Globals.MySQLUser, Globals.MySQLDatabase, Globals.MySQLPassword);
connection = new MySqlConnection(connstring);
connection.Open();
result = true;
}
return result;
}
public void Close()
{
connection.Close();
_instance = null;
}
}
}

View File

@@ -0,0 +1,297 @@
using System;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
using System.IO;
using System.Collections.Generic;
using System.Net;
using System.Collections.Specialized;
using System.Windows.Forms;
namespace PokerStarsBotClientv2
{
class HelperMethods
{
// Methods
public static void UpdateInsertSQL(string query)
{
try
{
var dbCon = DBConnection.Instance();
if (dbCon.IsConnect())
{
// Execute Query
using (var cmd = new MySqlCommand(query, dbCon.Connection))
{
cmd.ExecuteReader();
}
dbCon.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
public static void SQLStreamDelay(decimal delay)
{
int UserID = Globals.UserID;
string InsertQuery = "INSERT INTO `pkrstarsbot`.`config_user` (`UserID` ,`Key`) SELECT " + UserID + ", 'DelaySeconds' FROM dual WHERE NOT EXISTS (SELECT 1 FROM `pkrstarsbot`.`config_user` WHERE UserID = " + UserID + " AND `Key` = 'DelaySeconds')";
UpdateInsertSQL(InsertQuery);
string query = "UPDATE `pkrstarsbot`.`config_user` SET `Value` = '" + delay + "' WHERE `config_user`.`UserID` = " + UserID + ";";
UpdateInsertSQL(query);
}
public static DataTable GetSQLDataTable(string query)
{
DataTable dt = new DataTable();
try
{
var dbCon = DBConnection.Instance();
if (dbCon.IsConnect())
{
// Execute Query
var cmd = new MySqlCommand(query, dbCon.Connection);
using (MySqlDataReader dr = cmd.ExecuteReader())
{
dt.Load(dr);
}
dbCon.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
return dt;
}
public static void GetUserConfigFromDB()
{
// Get user config from table config
string query = "SELECT * FROM `config`";
DataTable dt = HelperMethods.GetSQLDataTable(query);
int FileNotOlderThanMin = dt.Rows[0].Field<Int32>("Value");
string RecentVersion = dt.Rows[1].Field<string>("Value_String");
// Get user ID from table reg_users
query = "SELECT ID FROM `reg_users` WHERE `EMail` = '" + Properties.Settings.Default.UserName + "'";
DataTable dtID = HelperMethods.GetSQLDataTable(query);
int UserID = dtID.Rows[0].Field<Int32>("ID");
// Globals
Globals.UserID = UserID;
Globals.FileNotOlderThanMin = FileNotOlderThanMin;
Globals.RecentVersion = RecentVersion;
Console.WriteLine("UserID (global): " + Globals.UserID);
Console.WriteLine("FileNotOlderThanMin (global): " + Globals.FileNotOlderThanMin);
Console.WriteLine("RecentVersion (global): " + Globals.RecentVersion);
}
public static void GetConfigFromDB()
{
// Get user config from table config
string query = "SELECT * FROM `config`";
DataTable dt = HelperMethods.GetSQLDataTable(query);
int FileNotOlderThanMin = dt.Rows[0].Field<Int32>("Value");
string RecentVersion = dt.Rows[1].Field<string>("Value_String");
// Globals
Globals.FileNotOlderThanMin = FileNotOlderThanMin;
Globals.RecentVersion = RecentVersion;
Console.WriteLine("FileNotOlderThanMin (global): " + Globals.FileNotOlderThanMin);
Console.WriteLine("RecentVersion (global): " + Globals.RecentVersion);
}
public static void DirectoryListing(string dir, Dictionary<string, DateTime> dictionary, List<FileInfo> UploadList)
{
DirectoryInfo d = new DirectoryInfo(dir);
FileInfo[] Files = d.GetFiles("*.txt");
foreach (FileInfo file in Files)
{
System.Console.WriteLine(file);
// Files in range of FileNotOlderThanMin
if (file.LastWriteTime < DateTime.Now.AddMinutes(-Globals.FileNotOlderThanMin))
{
System.Console.WriteLine("\t-> not recent: Older than " + Globals.FileNotOlderThanMin + " minutes");
}
else
{
// Recent files modtime check
System.Console.WriteLine("\t-> is recent");
if (dictionary.ContainsKey(file.Name) == true)
{
DateTime OldModTime = dictionary[file.Name];
DateTime NewModTime = file.LastWriteTime;
int result = DateTime.Compare(OldModTime, NewModTime);
if (result == 0)
{
System.Console.WriteLine("\t-> already uploaded");
System.Console.WriteLine("\t-> unchanged | LastWriteTime: " + file.LastWriteTime);
}
else
{
System.Console.WriteLine("\t-> changed: ModTime has changed, adding to upload list...");
dictionary[file.Name] = NewModTime;
UploadList.Add(file);
}
}
else
{
System.Console.WriteLine("\t-> adding file to dictionary.");
dictionary.Add(file.Name, file.LastWriteTime);
UploadList.Add(file);
}
}
}
//return (UploadList, dictionary);
}
public static void UploadFiles(List<FileInfo> UploadList)
{
bool Uploading = false;
Console.WriteLine("\nUploadList:");
bool isEmpty = !UploadList.Any();
if (isEmpty)
{
System.Console.WriteLine("\t-> is empty.");
}
else if (Uploading)
{
System.Console.WriteLine("\t-> currently uploading...");
}
else
{
System.Console.WriteLine("\t-> contains elements. Starting upload...");
Uploading = true;
WebClient client = new WebClient();
client.Encoding = Encoding.UTF8;
client.Credentials = CredentialCache.DefaultCredentials;
NameValueCollection parameters = new NameValueCollection();
parameters.Add("UserID", Globals.UserID.ToString());
parameters.Add("ClientSecret", Globals.ClientSecret);
client.QueryString = parameters;
for (int i = UploadList.Count - 1; i >= 0; i--)
{
// Current fileinfo object
FileInfo file = UploadList[i];
if (file.Length <= Globals.UploadFileSizeLimitBytes) // Check if file is too large
{
// Upload via webclient post with parameters
try
{
var responseBytes = client.UploadFile(Globals.uploadURL, "POST", file.FullName);
string Httpresponse = Encoding.ASCII.GetString(responseBytes);
System.Threading.Thread.Sleep(500);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
else
{
System.Console.WriteLine("\t-> File is too large to upload.");
}
// Remove uploaded item
UploadList.RemoveAt(i);
}
client.Dispose();
Uploading = false;
}
//return UploadList;
}
public static bool is_valid_run_dir(System.Windows.Forms.TextBox textbox)
{
var path = textbox.Text;
if (Directory.Exists(path))
{
System.Console.WriteLine("Directory exists: " + path);
Properties.Settings.Default.HandhistoryDir = path;
Properties.Settings.Default.Save();
return true;
}
else
{
System.Console.WriteLine("Directory does not exist: " + path);
MessageBox.Show("Selected handhistory directory does not exist.\nPlease select a valid directory.", "Directory not found", MessageBoxButtons.OK, MessageBoxIcon.Error);
textbox.Clear();
Properties.Settings.Default.HandhistoryDir = string.Empty;
Properties.Settings.Default.Save();
return false;
}
}
public static void MinimizeToTray(System.Windows.Forms.Form form) {
System.IO.Stream st;
System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
st = a.GetManifestResourceStream("PokerStarsBotClientv2.Properties.pkrstarsbot.ico");
System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
ni.Icon = new System.Drawing.Icon(st);
ni.Visible = true;
ni.DoubleClick +=
delegate (object sender, EventArgs args)
{
form.WindowState = FormWindowState.Minimized;
form.Show();
form.WindowState = System.Windows.Forms.FormWindowState.Normal;
};
}
}
class DBConnection
{
private MySqlConnection connection = null;
public MySqlConnection Connection
{
get { return connection; }
}
private static DBConnection _instance = null;
public static DBConnection Instance()
{
if (_instance == null)
_instance = new DBConnection();
return _instance;
}
public bool IsConnect()
{
bool result = true;
if (Connection == null)
{
if ((Globals.MySQLDatabase ?? Globals.MySQLPassword ?? Globals.MySQLServer ?? Globals.MySQLUser) == null)
{
return false;
}
string connstring = string.Format(@"server={0};user id={1};persistsecurityinfo=True;database={2};password={3}", Globals.MySQLServer, Globals.MySQLUser, Globals.MySQLDatabase, Globals.MySQLPassword);
connection = new MySqlConnection(connstring);
connection.Open();
result = true;
}
return result;
}
public void Close()
{
connection.Close();
_instance = null;
}
}
}

View File

@@ -0,0 +1,231 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Security.Cryptography;
namespace PokerStarsBotClientv2
{
public partial class LoginForm : Form
{
// Constructor
public LoginForm()
{
InitializeComponent();
LoadCreedentials();
this.Text += " v" + Globals.LocalVersion;
HelperMethods.GetConfigFromDB();
}
// Methods
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
CompareVersions();
}
private void CompareVersions()
{
// Version comparing
var result = Globals.RecentVersion.CompareTo(Globals.LocalVersion);
if (result > 0)
{
DialogResult dialogResult = MessageBox.Show("There is a newer client version available:\n\nYour version: " + Globals.LocalVersion + "\nNewest version: " + Globals.RecentVersion + "\n\nPlease update asap.\nOpen website now?", "Update PkrStarsBot", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
System.Diagnostics.Process.Start(Globals.PkrStarsBotURL);
}
Application.Exit();
}
}
private void checkBoxRememberMe_CheckedChanged(object sender, EventArgs e)
{
// Delete credentials is checkbox is not checked
if (checkBoxRememberMe.Checked == false)
{
Properties.Settings.Default.UserName = string.Empty;
Properties.Settings.Default.Password = string.Empty;
Properties.Settings.Default.Save();
}
}
private void LoadCreedentials()
{
if (Properties.Settings.Default.UserName != string.Empty && Properties.Settings.Default.Password != string.Empty)
{
textBoxUser.Text = Properties.Settings.Default.UserName;
textBoxPassword.Text = Properties.Settings.Default.Password;
checkBoxRememberMe.Checked = true;
EnableDisableLoginButton();
}
}
public void EnableDisableLoginButton()
{
if (string.IsNullOrWhiteSpace(textBoxUser.Text) || string.IsNullOrWhiteSpace(textBoxPassword.Text))
{
btnLogin.Enabled = false;
}
else
{
btnLogin.Enabled = true;
}
}
public string CalculateMD5Hash(string input)
{
// Calculate MD5 hash from input
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);
// Convert byte array to hex string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
private void btnLogin_Click(object sender, EventArgs e)
{
try
{
// Connect to DB
var dbCon = DBConnection.Instance();
if (dbCon.IsConnect())
{
// Username & password
string Username = textBoxUser.Text;
string Password = textBoxPassword.Text;
string PasswordMD5 = CalculateMD5Hash(Password);
string Count1 = "";
// Query
string query = "SELECT count(1) FROM `reg_users` WHERE `EMail` = @UserName AND `Password` = @PassWord;";
// SQL: Check username & password
var cmd = new MySqlCommand(query, dbCon.Connection);
cmd.Parameters.AddWithValue("@UserName", Username);
cmd.Parameters.AddWithValue("@PassWord", PasswordMD5);
var reader = cmd.ExecuteReader();
while (reader.Read())
{
Count1 = reader.GetString(0);
}
reader.Close();
// Login successful
if (Count1 == "1")
{
// Save credentials if checked
if (checkBoxRememberMe.Checked == true)
{
Properties.Settings.Default.UserName = Username;
Properties.Settings.Default.Password = Password;
Properties.Settings.Default.Save();
}
else
{
Properties.Settings.Default.UserName = Username;
Properties.Settings.Default.Save();
}
// Hide Login, show up main
this.Hide();
MainForm MainForm = new MainForm();
MainForm.Show();
}
else if (Count1 == "0") // Login unsuccessful
{
MessageBox.Show("LOGIN FAILED", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
// Close DB connection
dbCon.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void textBoxUser_KeyUp(object sender, KeyEventArgs e)
{
EnableDisableLoginButton();
}
private void textBoxPassword_KeyUp(object sender, KeyEventArgs e)
{
EnableDisableLoginButton();
}
private void LoginForm_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
private void z(object sender, EventArgs e)
{
}
}
}
/*namespace Data
{
public class DBConnection
{
// Fields
private string mysqlServer = "zinomedia.de";
private string mysqlUser = "pkrstarsbot";
private string mysqlPassword = "ichpkrstarsbot#1337";
private string mysqlDatabase = "pkrstarsbot";
private MySqlConnection connection = null;
public MySqlConnection Connection
{
get { return connection; }
}
private static DBConnection _instance = null;
public static DBConnection Instance()
{
if (_instance == null)
_instance = new DBConnection();
return _instance;
}
public bool IsConnect()
{
bool result = true;
if (Connection == null)
{
if ((mysqlDatabase ?? mysqlPassword ?? mysqlServer ?? mysqlUser) == null)
{
return false;
}
string connstring = string.Format(@"server={0};user id={1};persistsecurityinfo=True;database={2};password={3}", mysqlServer, mysqlUser, mysqlDatabase, mysqlPassword);
connection = new MySqlConnection(connstring);
connection.Open();
result = true;
}
return result;
}
public void Close()
{
connection.Close();
_instance = null;
}
}
}*/

View File

@@ -0,0 +1,253 @@
namespace PokerStarsBotClientv2
{
partial class LoginForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm));
this.panelLogo = new System.Windows.Forms.Panel();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.panelLogin = new System.Windows.Forms.Panel();
this.btnLogin = new System.Windows.Forms.Button();
this.checkBoxRememberMe = new System.Windows.Forms.CheckBox();
this.panelPassword = new System.Windows.Forms.Panel();
this.textBoxPassword = new System.Windows.Forms.TextBox();
this.iconPictureBox1 = new FontAwesome.Sharp.IconPictureBox();
this.panelUser = new System.Windows.Forms.Panel();
this.textBoxUser = new System.Windows.Forms.TextBox();
this.iconPictureBoxUser = new FontAwesome.Sharp.IconPictureBox();
this.labelLogin = new System.Windows.Forms.Label();
this.panelLogo.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.panelLogin.SuspendLayout();
this.panelPassword.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.iconPictureBox1)).BeginInit();
this.panelUser.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.iconPictureBoxUser)).BeginInit();
this.SuspendLayout();
//
// panelLogo
//
this.panelLogo.Controls.Add(this.pictureBox1);
this.panelLogo.Dock = System.Windows.Forms.DockStyle.Left;
this.panelLogo.Location = new System.Drawing.Point(0, 0);
this.panelLogo.Name = "panelLogo";
this.panelLogo.Size = new System.Drawing.Size(350, 411);
this.panelLogo.TabIndex = 0;
//
// pictureBox1
//
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
this.pictureBox1.Margin = new System.Windows.Forms.Padding(1);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(350, 411);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 1;
this.pictureBox1.TabStop = false;
//
// panelLogin
//
this.panelLogin.BackColor = System.Drawing.Color.White;
this.panelLogin.Controls.Add(this.btnLogin);
this.panelLogin.Controls.Add(this.checkBoxRememberMe);
this.panelLogin.Controls.Add(this.panelPassword);
this.panelLogin.Controls.Add(this.iconPictureBox1);
this.panelLogin.Controls.Add(this.panelUser);
this.panelLogin.Controls.Add(this.iconPictureBoxUser);
this.panelLogin.Controls.Add(this.labelLogin);
this.panelLogin.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelLogin.Location = new System.Drawing.Point(350, 0);
this.panelLogin.Name = "panelLogin";
this.panelLogin.Size = new System.Drawing.Size(334, 411);
this.panelLogin.TabIndex = 1;
//
// btnLogin
//
this.btnLogin.Enabled = false;
this.btnLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnLogin.Location = new System.Drawing.Point(45, 294);
this.btnLogin.Margin = new System.Windows.Forms.Padding(1);
this.btnLogin.Name = "btnLogin";
this.btnLogin.Size = new System.Drawing.Size(270, 29);
this.btnLogin.TabIndex = 18;
this.btnLogin.Text = "Login";
this.btnLogin.UseVisualStyleBackColor = true;
this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
//
// checkBoxRememberMe
//
this.checkBoxRememberMe.AutoSize = true;
this.checkBoxRememberMe.FlatAppearance.BorderSize = 0;
this.checkBoxRememberMe.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.checkBoxRememberMe.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxRememberMe.Location = new System.Drawing.Point(45, 256);
this.checkBoxRememberMe.Margin = new System.Windows.Forms.Padding(1);
this.checkBoxRememberMe.Name = "checkBoxRememberMe";
this.checkBoxRememberMe.Size = new System.Drawing.Size(130, 24);
this.checkBoxRememberMe.TabIndex = 17;
this.checkBoxRememberMe.Text = "Remember me";
this.checkBoxRememberMe.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.checkBoxRememberMe.UseVisualStyleBackColor = true;
this.checkBoxRememberMe.CheckedChanged += new System.EventHandler(this.checkBoxRememberMe_CheckedChanged);
//
// panelPassword
//
this.panelPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panelPassword.Controls.Add(this.textBoxPassword);
this.panelPassword.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.panelPassword.Location = new System.Drawing.Point(52, 159);
this.panelPassword.Margin = new System.Windows.Forms.Padding(1);
this.panelPassword.Name = "panelPassword";
this.panelPassword.Padding = new System.Windows.Forms.Padding(8, 2, 8, 2);
this.panelPassword.Size = new System.Drawing.Size(263, 25);
this.panelPassword.TabIndex = 16;
//
// textBoxPassword
//
this.textBoxPassword.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBoxPassword.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxPassword.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxPassword.Location = new System.Drawing.Point(8, 2);
this.textBoxPassword.Margin = new System.Windows.Forms.Padding(1);
this.textBoxPassword.Multiline = true;
this.textBoxPassword.Name = "textBoxPassword";
this.textBoxPassword.PasswordChar = '*';
this.textBoxPassword.Size = new System.Drawing.Size(245, 19);
this.textBoxPassword.TabIndex = 6;
this.textBoxPassword.TextChanged += new System.EventHandler(this.z);
this.textBoxPassword.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBoxPassword_KeyUp);
//
// iconPictureBox1
//
this.iconPictureBox1.BackColor = System.Drawing.Color.White;
this.iconPictureBox1.ForeColor = System.Drawing.SystemColors.ControlText;
this.iconPictureBox1.IconChar = FontAwesome.Sharp.IconChar.Lock;
this.iconPictureBox1.IconColor = System.Drawing.SystemColors.ControlText;
this.iconPictureBox1.IconFont = FontAwesome.Sharp.IconFont.Solid;
this.iconPictureBox1.IconSize = 22;
this.iconPictureBox1.Location = new System.Drawing.Point(22, 162);
this.iconPictureBox1.Margin = new System.Windows.Forms.Padding(1);
this.iconPictureBox1.Name = "iconPictureBox1";
this.iconPictureBox1.Size = new System.Drawing.Size(26, 22);
this.iconPictureBox1.TabIndex = 15;
this.iconPictureBox1.TabStop = false;
//
// panelUser
//
this.panelUser.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panelUser.Controls.Add(this.textBoxUser);
this.panelUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.panelUser.Location = new System.Drawing.Point(52, 122);
this.panelUser.Margin = new System.Windows.Forms.Padding(1);
this.panelUser.Name = "panelUser";
this.panelUser.Padding = new System.Windows.Forms.Padding(8, 2, 8, 2);
this.panelUser.Size = new System.Drawing.Size(263, 25);
this.panelUser.TabIndex = 14;
//
// textBoxUser
//
this.textBoxUser.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBoxUser.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxUser.Location = new System.Drawing.Point(8, 2);
this.textBoxUser.Margin = new System.Windows.Forms.Padding(1);
this.textBoxUser.Multiline = true;
this.textBoxUser.Name = "textBoxUser";
this.textBoxUser.Size = new System.Drawing.Size(245, 19);
this.textBoxUser.TabIndex = 6;
this.textBoxUser.Text = "Your email";
this.textBoxUser.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBoxUser_KeyUp);
//
// iconPictureBoxUser
//
this.iconPictureBoxUser.BackColor = System.Drawing.Color.White;
this.iconPictureBoxUser.ForeColor = System.Drawing.SystemColors.ControlText;
this.iconPictureBoxUser.IconChar = FontAwesome.Sharp.IconChar.User;
this.iconPictureBoxUser.IconColor = System.Drawing.SystemColors.ControlText;
this.iconPictureBoxUser.IconFont = FontAwesome.Sharp.IconFont.Solid;
this.iconPictureBoxUser.IconSize = 23;
this.iconPictureBoxUser.Location = new System.Drawing.Point(22, 122);
this.iconPictureBoxUser.Margin = new System.Windows.Forms.Padding(1);
this.iconPictureBoxUser.Name = "iconPictureBoxUser";
this.iconPictureBoxUser.Size = new System.Drawing.Size(26, 23);
this.iconPictureBoxUser.TabIndex = 13;
this.iconPictureBoxUser.TabStop = false;
//
// labelLogin
//
this.labelLogin.AutoSize = true;
this.labelLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 27.9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelLogin.Location = new System.Drawing.Point(37, 23);
this.labelLogin.Margin = new System.Windows.Forms.Padding(1, 0, 1, 0);
this.labelLogin.Name = "labelLogin";
this.labelLogin.Size = new System.Drawing.Size(113, 44);
this.labelLogin.TabIndex = 12;
this.labelLogin.Text = "Login";
//
// LoginForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(684, 411);
this.Controls.Add(this.panelLogin);
this.Controls.Add(this.panelLogo);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "LoginForm";
this.Text = "PkrStarsBot Client";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.LoginForm_FormClosing);
this.panelLogo.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.panelLogin.ResumeLayout(false);
this.panelLogin.PerformLayout();
this.panelPassword.ResumeLayout(false);
this.panelPassword.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.iconPictureBox1)).EndInit();
this.panelUser.ResumeLayout(false);
this.panelUser.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.iconPictureBoxUser)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panelLogo;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Panel panelLogin;
private System.Windows.Forms.Button btnLogin;
private System.Windows.Forms.CheckBox checkBoxRememberMe;
private System.Windows.Forms.Panel panelPassword;
private System.Windows.Forms.TextBox textBoxPassword;
private FontAwesome.Sharp.IconPictureBox iconPictureBox1;
private System.Windows.Forms.Panel panelUser;
private System.Windows.Forms.TextBox textBoxUser;
private FontAwesome.Sharp.IconPictureBox iconPictureBoxUser;
private System.Windows.Forms.Label labelLogin;
}
}

View File

@@ -0,0 +1,261 @@
namespace PokerStarsBotClientv2
{
partial class LoginForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm));
this.panelLogo = new System.Windows.Forms.Panel();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.panelLogin = new System.Windows.Forms.Panel();
this.btnLogin = new System.Windows.Forms.Button();
this.checkBoxRememberMe = new System.Windows.Forms.CheckBox();
this.panelPassword = new System.Windows.Forms.Panel();
this.textBoxPassword = new System.Windows.Forms.TextBox();
this.iconPictureBox1 = new FontAwesome.Sharp.IconPictureBox();
this.panelUser = new System.Windows.Forms.Panel();
this.textBoxUser = new System.Windows.Forms.TextBox();
this.iconPictureBoxUser = new FontAwesome.Sharp.IconPictureBox();
this.labelLogin = new System.Windows.Forms.Label();
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.panelLogo.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.panelLogin.SuspendLayout();
this.panelPassword.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.iconPictureBox1)).BeginInit();
this.panelUser.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.iconPictureBoxUser)).BeginInit();
this.SuspendLayout();
//
// panelLogo
//
this.panelLogo.Controls.Add(this.pictureBox1);
this.panelLogo.Dock = System.Windows.Forms.DockStyle.Left;
this.panelLogo.Location = new System.Drawing.Point(0, 0);
this.panelLogo.Name = "panelLogo";
this.panelLogo.Size = new System.Drawing.Size(350, 411);
this.panelLogo.TabIndex = 0;
//
// pictureBox1
//
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
this.pictureBox1.Margin = new System.Windows.Forms.Padding(1);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(350, 411);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 1;
this.pictureBox1.TabStop = false;
//
// panelLogin
//
this.panelLogin.BackColor = System.Drawing.Color.White;
this.panelLogin.Controls.Add(this.btnLogin);
this.panelLogin.Controls.Add(this.checkBoxRememberMe);
this.panelLogin.Controls.Add(this.panelPassword);
this.panelLogin.Controls.Add(this.iconPictureBox1);
this.panelLogin.Controls.Add(this.panelUser);
this.panelLogin.Controls.Add(this.iconPictureBoxUser);
this.panelLogin.Controls.Add(this.labelLogin);
this.panelLogin.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelLogin.Location = new System.Drawing.Point(350, 0);
this.panelLogin.Name = "panelLogin";
this.panelLogin.Size = new System.Drawing.Size(334, 411);
this.panelLogin.TabIndex = 1;
//
// btnLogin
//
this.btnLogin.Enabled = false;
this.btnLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnLogin.Location = new System.Drawing.Point(45, 294);
this.btnLogin.Margin = new System.Windows.Forms.Padding(1);
this.btnLogin.Name = "btnLogin";
this.btnLogin.Size = new System.Drawing.Size(270, 29);
this.btnLogin.TabIndex = 18;
this.btnLogin.Text = "Login";
this.btnLogin.UseVisualStyleBackColor = true;
this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
//
// checkBoxRememberMe
//
this.checkBoxRememberMe.AutoSize = true;
this.checkBoxRememberMe.FlatAppearance.BorderSize = 0;
this.checkBoxRememberMe.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.checkBoxRememberMe.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxRememberMe.Location = new System.Drawing.Point(45, 256);
this.checkBoxRememberMe.Margin = new System.Windows.Forms.Padding(1);
this.checkBoxRememberMe.Name = "checkBoxRememberMe";
this.checkBoxRememberMe.Size = new System.Drawing.Size(130, 24);
this.checkBoxRememberMe.TabIndex = 17;
this.checkBoxRememberMe.Text = "Remember me";
this.checkBoxRememberMe.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.checkBoxRememberMe.UseVisualStyleBackColor = true;
this.checkBoxRememberMe.CheckedChanged += new System.EventHandler(this.checkBoxRememberMe_CheckedChanged);
//
// panelPassword
//
this.panelPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panelPassword.Controls.Add(this.textBoxPassword);
this.panelPassword.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.panelPassword.Location = new System.Drawing.Point(52, 159);
this.panelPassword.Margin = new System.Windows.Forms.Padding(1);
this.panelPassword.Name = "panelPassword";
this.panelPassword.Padding = new System.Windows.Forms.Padding(8, 2, 8, 2);
this.panelPassword.Size = new System.Drawing.Size(263, 25);
this.panelPassword.TabIndex = 16;
//
// textBoxPassword
//
this.textBoxPassword.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBoxPassword.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxPassword.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxPassword.Location = new System.Drawing.Point(8, 2);
this.textBoxPassword.Margin = new System.Windows.Forms.Padding(1);
this.textBoxPassword.Multiline = true;
this.textBoxPassword.Name = "textBoxPassword";
this.textBoxPassword.PasswordChar = '*';
this.textBoxPassword.Size = new System.Drawing.Size(245, 19);
this.textBoxPassword.TabIndex = 6;
this.textBoxPassword.TextChanged += new System.EventHandler(this.z);
this.textBoxPassword.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBoxPassword_KeyUp);
//
// iconPictureBox1
//
this.iconPictureBox1.BackColor = System.Drawing.Color.White;
this.iconPictureBox1.ForeColor = System.Drawing.SystemColors.ControlText;
this.iconPictureBox1.IconChar = FontAwesome.Sharp.IconChar.Lock;
this.iconPictureBox1.IconColor = System.Drawing.SystemColors.ControlText;
this.iconPictureBox1.IconFont = FontAwesome.Sharp.IconFont.Solid;
this.iconPictureBox1.IconSize = 22;
this.iconPictureBox1.Location = new System.Drawing.Point(22, 162);
this.iconPictureBox1.Margin = new System.Windows.Forms.Padding(1);
this.iconPictureBox1.Name = "iconPictureBox1";
this.iconPictureBox1.Size = new System.Drawing.Size(26, 22);
this.iconPictureBox1.TabIndex = 15;
this.iconPictureBox1.TabStop = false;
//
// panelUser
//
this.panelUser.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panelUser.Controls.Add(this.textBoxUser);
this.panelUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.panelUser.Location = new System.Drawing.Point(52, 122);
this.panelUser.Margin = new System.Windows.Forms.Padding(1);
this.panelUser.Name = "panelUser";
this.panelUser.Padding = new System.Windows.Forms.Padding(8, 2, 8, 2);
this.panelUser.Size = new System.Drawing.Size(263, 25);
this.panelUser.TabIndex = 14;
//
// textBoxUser
//
this.textBoxUser.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBoxUser.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxUser.Location = new System.Drawing.Point(8, 2);
this.textBoxUser.Margin = new System.Windows.Forms.Padding(1);
this.textBoxUser.Multiline = true;
this.textBoxUser.Name = "textBoxUser";
this.textBoxUser.Size = new System.Drawing.Size(245, 19);
this.textBoxUser.TabIndex = 6;
this.textBoxUser.Text = "Your email";
this.textBoxUser.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBoxUser_KeyUp);
//
// iconPictureBoxUser
//
this.iconPictureBoxUser.BackColor = System.Drawing.Color.White;
this.iconPictureBoxUser.ForeColor = System.Drawing.SystemColors.ControlText;
this.iconPictureBoxUser.IconChar = FontAwesome.Sharp.IconChar.User;
this.iconPictureBoxUser.IconColor = System.Drawing.SystemColors.ControlText;
this.iconPictureBoxUser.IconFont = FontAwesome.Sharp.IconFont.Solid;
this.iconPictureBoxUser.IconSize = 23;
this.iconPictureBoxUser.Location = new System.Drawing.Point(22, 122);
this.iconPictureBoxUser.Margin = new System.Windows.Forms.Padding(1);
this.iconPictureBoxUser.Name = "iconPictureBoxUser";
this.iconPictureBoxUser.Size = new System.Drawing.Size(26, 23);
this.iconPictureBoxUser.TabIndex = 13;
this.iconPictureBoxUser.TabStop = false;
//
// labelLogin
//
this.labelLogin.AutoSize = true;
this.labelLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 27.9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelLogin.Location = new System.Drawing.Point(37, 23);
this.labelLogin.Margin = new System.Windows.Forms.Padding(1, 0, 1, 0);
this.labelLogin.Name = "labelLogin";
this.labelLogin.Size = new System.Drawing.Size(113, 44);
this.labelLogin.TabIndex = 12;
this.labelLogin.Text = "Login";
//
// contextMenuStrip1
//
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(61, 4);
//
// LoginForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(684, 411);
this.Controls.Add(this.panelLogin);
this.Controls.Add(this.panelLogo);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "LoginForm";
this.Text = "PkrStarsBot Client";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.LoginForm_FormClosing);
this.panelLogo.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.panelLogin.ResumeLayout(false);
this.panelLogin.PerformLayout();
this.panelPassword.ResumeLayout(false);
this.panelPassword.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.iconPictureBox1)).EndInit();
this.panelUser.ResumeLayout(false);
this.panelUser.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.iconPictureBoxUser)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panelLogo;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Panel panelLogin;
private System.Windows.Forms.Button btnLogin;
private System.Windows.Forms.CheckBox checkBoxRememberMe;
private System.Windows.Forms.Panel panelPassword;
private System.Windows.Forms.TextBox textBoxPassword;
private FontAwesome.Sharp.IconPictureBox iconPictureBox1;
private System.Windows.Forms.Panel panelUser;
private System.Windows.Forms.TextBox textBoxUser;
private FontAwesome.Sharp.IconPictureBox iconPictureBoxUser;
private System.Windows.Forms.Label labelLogin;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
}
}

View File

@@ -0,0 +1,231 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Security.Cryptography;
namespace PokerStarsBotClientv2
{
public partial class LoginForm : Form
{
// Constructor
public LoginForm()
{
InitializeComponent();
LoadCreedentials();
this.Text += " v" + Globals.LocalVersion;
HelperMethods.GetConfigFromDB();
}
// Methods
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
CompareVersions();
}
private void CompareVersions()
{
// Version comparing
var result = Globals.RecentVersion.CompareTo(Globals.LocalVersion);
if (result > 0)
{
DialogResult dialogResult = MessageBox.Show("There is a newer client version available:\n\nYour version: " + Globals.LocalVersion + "\nNewest version: " + Globals.RecentVersion + "\n\nPlease update asap.\nOpen website now?", "Update PkrStarsBot", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
System.Diagnostics.Process.Start(Globals.PkrStarsBotURL);
}
Application.Exit();
}
}
private void checkBoxRememberMe_CheckedChanged(object sender, EventArgs e)
{
// Delete credentials is checkbox is not checked
if (checkBoxRememberMe.Checked == false)
{
Properties.Settings.Default.UserName = string.Empty;
Properties.Settings.Default.Password = string.Empty;
Properties.Settings.Default.Save();
}
}
private void LoadCreedentials()
{
if (Properties.Settings.Default.UserName != string.Empty && Properties.Settings.Default.Password != string.Empty)
{
textBoxUser.Text = Properties.Settings.Default.UserName;
textBoxPassword.Text = Properties.Settings.Default.Password;
checkBoxRememberMe.Checked = true;
EnableDisableLoginButton();
}
}
public void EnableDisableLoginButton()
{
if (string.IsNullOrWhiteSpace(textBoxUser.Text) || string.IsNullOrWhiteSpace(textBoxPassword.Text))
{
btnLogin.Enabled = false;
}
else
{
btnLogin.Enabled = true;
}
}
public string CalculateMD5Hash(string input)
{
// Calculate MD5 hash from input
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);
// Convert byte array to hex string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
private void btnLogin_Click(object sender, EventArgs e)
{
try
{
// Connect to DB
var dbCon = DBConnection.Instance();
if (dbCon.IsConnect())
{
// Username & password
string Username = textBoxUser.Text;
string Password = textBoxPassword.Text;
string PasswordMD5 = CalculateMD5Hash(Password);
string Count1 = "";
// Query
string query = "SELECT count(1) FROM `reg_users` WHERE `EMail` = @UserName AND `Password` = @PassWord;";
// SQL: Check username & password
var cmd = new MySqlCommand(query, dbCon.Connection);
cmd.Parameters.AddWithValue("@UserName", Username);
cmd.Parameters.AddWithValue("@PassWord", PasswordMD5);
var reader = cmd.ExecuteReader();
while (reader.Read())
{
Count1 = reader.GetString(0);
}
reader.Close();
// Login successful
if (Count1 == "1")
{
// Save credentials if checked
if (checkBoxRememberMe.Checked == true)
{
Properties.Settings.Default.UserName = Username;
Properties.Settings.Default.Password = Password;
Properties.Settings.Default.Save();
}
else
{
Properties.Settings.Default.UserName = Username;
Properties.Settings.Default.Save();
}
// Hide Login, show up main
this.Hide();
MainForm MainForm = new MainForm();
MainForm.Show();
}
else if (Count1 == "0") // Login unsuccessful
{
MessageBox.Show("LOGIN FAILED", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
// Close DB connection
dbCon.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void textBoxUser_KeyUp(object sender, KeyEventArgs e)
{
EnableDisableLoginButton();
}
private void textBoxPassword_KeyUp(object sender, KeyEventArgs e)
{
EnableDisableLoginButton();
}
private void LoginForm_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
private void z(object sender, EventArgs e)
{
}
}
}
/*namespace Data
{
public class DBConnection
{
// Fields
private string mysqlServer = "zinomedia.de";
private string mysqlUser = "pkrstarsbot";
private string mysqlPassword = "ichpkrstarsbot#1337";
private string mysqlDatabase = "pkrstarsbot";
private MySqlConnection connection = null;
public MySqlConnection Connection
{
get { return connection; }
}
private static DBConnection _instance = null;
public static DBConnection Instance()
{
if (_instance == null)
_instance = new DBConnection();
return _instance;
}
public bool IsConnect()
{
bool result = true;
if (Connection == null)
{
if ((mysqlDatabase ?? mysqlPassword ?? mysqlServer ?? mysqlUser) == null)
{
return false;
}
string connstring = string.Format(@"server={0};user id={1};persistsecurityinfo=True;database={2};password={3}", mysqlServer, mysqlUser, mysqlDatabase, mysqlPassword);
connection = new MySqlConnection(connstring);
connection.Open();
result = true;
}
return result;
}
public void Close()
{
connection.Close();
_instance = null;
}
}
}*/

View File

@@ -0,0 +1,199 @@
namespace PokerStarsBotClientv2
{
partial class MainForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.panelMenu = new System.Windows.Forms.Panel();
this.btnUploadAll = new FontAwesome.Sharp.IconButton();
this.btnRun = new FontAwesome.Sharp.IconButton();
this.panelLogo = new System.Windows.Forms.Panel();
this.labelEmail = new System.Windows.Forms.Label();
this.labelLoggedInAs = new System.Windows.Forms.Label();
this.btnHome = new System.Windows.Forms.PictureBox();
this.panelDesktop = new System.Windows.Forms.Panel();
this.panelMenu.SuspendLayout();
this.panelLogo.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.btnHome)).BeginInit();
this.SuspendLayout();
//
// panelMenu
//
this.panelMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(32)))), ((int)(((byte)(40)))));
this.panelMenu.Controls.Add(this.btnUploadAll);
this.panelMenu.Controls.Add(this.btnRun);
this.panelMenu.Controls.Add(this.panelLogo);
this.panelMenu.Dock = System.Windows.Forms.DockStyle.Left;
this.panelMenu.Location = new System.Drawing.Point(0, 0);
this.panelMenu.Margin = new System.Windows.Forms.Padding(1);
this.panelMenu.Name = "panelMenu";
this.panelMenu.Size = new System.Drawing.Size(182, 461);
this.panelMenu.TabIndex = 0;
//
// btnUploadAll
//
this.btnUploadAll.Dock = System.Windows.Forms.DockStyle.Top;
this.btnUploadAll.FlatAppearance.BorderSize = 0;
this.btnUploadAll.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnUploadAll.Flip = FontAwesome.Sharp.FlipOrientation.Normal;
this.btnUploadAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnUploadAll.ForeColor = System.Drawing.Color.White;
this.btnUploadAll.IconChar = FontAwesome.Sharp.IconChar.Upload;
this.btnUploadAll.IconColor = System.Drawing.Color.White;
this.btnUploadAll.IconFont = FontAwesome.Sharp.IconFont.Auto;
this.btnUploadAll.IconSize = 24;
this.btnUploadAll.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnUploadAll.Location = new System.Drawing.Point(0, 248);
this.btnUploadAll.Margin = new System.Windows.Forms.Padding(1);
this.btnUploadAll.Name = "btnUploadAll";
this.btnUploadAll.Padding = new System.Windows.Forms.Padding(8, 0, 8, 0);
this.btnUploadAll.Rotation = 0D;
this.btnUploadAll.Size = new System.Drawing.Size(182, 50);
this.btnUploadAll.TabIndex = 2;
this.btnUploadAll.Text = "Upload All";
this.btnUploadAll.UseVisualStyleBackColor = true;
this.btnUploadAll.Click += new System.EventHandler(this.btnUploadAll_Click);
//
// btnRun
//
this.btnRun.Dock = System.Windows.Forms.DockStyle.Top;
this.btnRun.FlatAppearance.BorderSize = 0;
this.btnRun.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnRun.Flip = FontAwesome.Sharp.FlipOrientation.Normal;
this.btnRun.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnRun.ForeColor = System.Drawing.Color.White;
this.btnRun.IconChar = FontAwesome.Sharp.IconChar.Play;
this.btnRun.IconColor = System.Drawing.Color.White;
this.btnRun.IconFont = FontAwesome.Sharp.IconFont.Auto;
this.btnRun.IconSize = 22;
this.btnRun.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnRun.Location = new System.Drawing.Point(0, 198);
this.btnRun.Margin = new System.Windows.Forms.Padding(1);
this.btnRun.Name = "btnRun";
this.btnRun.Padding = new System.Windows.Forms.Padding(8, 0, 8, 0);
this.btnRun.Rotation = 0D;
this.btnRun.Size = new System.Drawing.Size(182, 50);
this.btnRun.TabIndex = 1;
this.btnRun.Text = "Run";
this.btnRun.UseVisualStyleBackColor = true;
this.btnRun.Click += new System.EventHandler(this.btnRun_Click);
//
// panelLogo
//
this.panelLogo.Controls.Add(this.labelEmail);
this.panelLogo.Controls.Add(this.labelLoggedInAs);
this.panelLogo.Controls.Add(this.btnHome);
this.panelLogo.Dock = System.Windows.Forms.DockStyle.Top;
this.panelLogo.Location = new System.Drawing.Point(0, 0);
this.panelLogo.Margin = new System.Windows.Forms.Padding(1);
this.panelLogo.Name = "panelLogo";
this.panelLogo.Padding = new System.Windows.Forms.Padding(4, 0, 8, 0);
this.panelLogo.Size = new System.Drawing.Size(182, 198);
this.panelLogo.TabIndex = 0;
this.panelLogo.Paint += new System.Windows.Forms.PaintEventHandler(this.panelLogo_Paint);
//
// labelEmail
//
this.labelEmail.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.labelEmail.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelEmail.ForeColor = System.Drawing.Color.White;
this.labelEmail.Location = new System.Drawing.Point(7, 161);
this.labelEmail.Name = "labelEmail";
this.labelEmail.Size = new System.Drawing.Size(164, 23);
this.labelEmail.TabIndex = 4;
this.labelEmail.Text = "-";
this.labelEmail.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// labelLoggedInAs
//
this.labelLoggedInAs.AutoSize = true;
this.labelLoggedInAs.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelLoggedInAs.ForeColor = System.Drawing.Color.White;
this.labelLoggedInAs.Location = new System.Drawing.Point(43, 144);
this.labelLoggedInAs.Name = "labelLoggedInAs";
this.labelLoggedInAs.Size = new System.Drawing.Size(90, 17);
this.labelLoggedInAs.TabIndex = 3;
this.labelLoggedInAs.Text = "Logged in as";
//
// btnHome
//
this.btnHome.Image = ((System.Drawing.Image)(resources.GetObject("btnHome.Image")));
this.btnHome.Location = new System.Drawing.Point(20, 10);
this.btnHome.Margin = new System.Windows.Forms.Padding(1);
this.btnHome.Name = "btnHome";
this.btnHome.Size = new System.Drawing.Size(133, 115);
this.btnHome.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.btnHome.TabIndex = 0;
this.btnHome.TabStop = false;
//
// panelDesktop
//
this.panelDesktop.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelDesktop.Location = new System.Drawing.Point(182, 0);
this.panelDesktop.Margin = new System.Windows.Forms.Padding(1);
this.panelDesktop.Name = "panelDesktop";
this.panelDesktop.Size = new System.Drawing.Size(702, 461);
this.panelDesktop.TabIndex = 2;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(884, 461);
this.Controls.Add(this.panelDesktop);
this.Controls.Add(this.panelMenu);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(1);
this.MaximizeBox = false;
this.MinimumSize = new System.Drawing.Size(722, 442);
this.Name = "MainForm";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "PkrStarsBot Client";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
this.panelMenu.ResumeLayout(false);
this.panelLogo.ResumeLayout(false);
this.panelLogo.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.btnHome)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panelMenu;
private FontAwesome.Sharp.IconButton btnUploadAll;
private FontAwesome.Sharp.IconButton btnRun;
private System.Windows.Forms.Panel panelLogo;
private System.Windows.Forms.PictureBox btnHome;
private System.Windows.Forms.Panel panelDesktop;
private System.Windows.Forms.Label labelEmail;
private System.Windows.Forms.Label labelLoggedInAs;
}
}

View File

@@ -0,0 +1,130 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Text;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using FontAwesome.Sharp;
using PokerStarsBotClientv2.Forms;
namespace PokerStarsBotClientv2
{
public partial class MainForm : Form
{
// Fields
private IconButton currentBtn;
private Panel leftBorderBtn;
//private Form currentChildForm;
private Form FormRun;
private Form FormUploadAll;
// Constructor
public MainForm()
{
InitializeComponent();
HelperMethods.GetUserConfigFromDB();
this.Text += " v" + Globals.LocalVersion;
HelperMethods.MinimizeToTray(this);
// GUI
leftBorderBtn = new Panel();
leftBorderBtn.Size = new Size(10, 50);
panelMenu.Controls.Add(leftBorderBtn);
labelEmail.Text = Properties.Settings.Default.UserName;
// Create forms only once
FormRun = new FormRun();
FormUploadAll = new FormUploadAll();
// Default form on startup
ActivateButton(btnRun, RGBColors.color5);
OpenChildForm(FormRun);
}
// Structs
private struct RGBColors
{
public static Color color1 = Color.FromArgb(255, 255, 255); // white
public static Color color2 = Color.FromArgb(0, 174, 219); // metro blue
public static Color color3 = Color.FromArgb(26, 32, 40); // pokerstarsbot blue
public static Color color4 = Color.FromArgb(244, 244, 244); // f4f4f4
public static Color color5 = Color.Gainsboro;
public static Color color6 = Color.FromArgb(50, 62, 78); // pokerstarsblue lighter
}
// Methods
private void ActivateButton(object senderBtn, Color color)
{
if (senderBtn != null)
{
DisableButton();
currentBtn = (IconButton)senderBtn;
currentBtn.BackColor = RGBColors.color6;
currentBtn.ForeColor = color;
currentBtn.TextAlign = ContentAlignment.MiddleCenter;
currentBtn.IconColor = color;
currentBtn.TextImageRelation = TextImageRelation.TextBeforeImage;
currentBtn.ImageAlign = ContentAlignment.MiddleRight;
// Left boder button
leftBorderBtn.BackColor = RGBColors.color2;
leftBorderBtn.Location = new Point(0, currentBtn.Location.Y);
leftBorderBtn.Visible = true;
leftBorderBtn.BringToFront();
}
}
private void DisableButton()
{
if (currentBtn != null)
{
currentBtn.BackColor = Color.FromArgb(26, 32, 40);
currentBtn.ForeColor = Color.White;
currentBtn.TextAlign = ContentAlignment.MiddleCenter;
currentBtn.IconColor = Color.White;
currentBtn.TextImageRelation = TextImageRelation.Overlay;
currentBtn.ImageAlign = ContentAlignment.MiddleLeft;
}
}
private void OpenChildForm(Form childForm)
{
//currentChildForm = childForm;
childForm.TopLevel = false;
childForm.FormBorderStyle = FormBorderStyle.None;
childForm.Dock = DockStyle.Fill;
panelDesktop.Controls.Add(childForm);
panelDesktop.Tag = childForm;
childForm.BringToFront();
childForm.Show();
}
private void btnRun_Click(object sender, EventArgs e)
{
ActivateButton(sender, RGBColors.color5);
OpenChildForm(FormRun);
}
private void btnUploadAll_Click(object sender, EventArgs e)
{
ActivateButton(sender, RGBColors.color5);
OpenChildForm(FormUploadAll);
}
private void panelLogo_Paint(object sender, PaintEventArgs e)
{
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
}
}

View File

@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" />
<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>{B25C11D8-E736-4C7E-9F74-977EE5C669C9}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>PokerStarsBotClientv2</RootNamespace>
<AssemblyName>PokerStarsBotClientv2</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</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>
</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>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>pkrstarsbot.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="BouncyCastle.Crypto, Version=1.8.3.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
<HintPath>..\packages\BouncyCastle.1.8.3.1\lib\BouncyCastle.Crypto.dll</HintPath>
</Reference>
<Reference Include="Costura, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
<HintPath>..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll</HintPath>
</Reference>
<Reference Include="FontAwesome.Sharp, Version=5.15.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\FontAwesome.Sharp.5.15.1\lib\net472\FontAwesome.Sharp.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf, Version=3.11.4.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Protobuf.3.11.4\lib\net45\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4, Version=1.1.11.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.1.1.11\lib\net46\K4os.Compression.LZ4.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.1.11.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.Streams.1.1.11\lib\net46\K4os.Compression.LZ4.Streams.dll</HintPath>
</Reference>
<Reference Include="K4os.Hash.xxHash, Version=1.0.6.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Hash.xxHash.1.0.6\lib\net46\K4os.Hash.xxHash.dll</HintPath>
</Reference>
<Reference Include="MySql.Data, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
<HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Ubiety.Dns.Core, Version=2.2.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\Ubiety.Dns.Core.dll</HintPath>
</Reference>
<Reference Include="Zstandard.Net, Version=1.1.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\Zstandard.Net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Globals.cs" />
<Compile Include="HelperMethods.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="LoginForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LoginForm.Designer.cs">
<DependentUpon>LoginForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormUploadAll.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormUploadAll.Designer.cs">
<DependentUpon>FormUploadAll.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormRun.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormRun.Designer.cs">
<DependentUpon>FormRun.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormRun.resx">
<DependentUpon>FormRun.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormUploadAll.resx">
<DependentUpon>FormUploadAll.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="LoginForm.resx">
<DependentUpon>LoginForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\pkrstarsbot.ico" />
</ItemGroup>
<ItemGroup>
<Content Include="pkrstarsbot.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Fody.6.0.0\build\Fody.targets" Condition="Exists('..\packages\Fody.6.0.0\build\Fody.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Fody.6.0.0\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.0.0\build\Fody.targets'))" />
<Error Condition="!Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props'))" />
</Target>
</Project>

View File

@@ -0,0 +1,166 @@
<?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>{B25C11D8-E736-4C7E-9F74-977EE5C669C9}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>PokerStarsBotClientv2</RootNamespace>
<AssemblyName>PokerStarsBotClientv2</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</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>
</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>
</PropertyGroup>
<ItemGroup>
<Reference Include="BouncyCastle.Crypto, Version=1.8.3.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
<HintPath>..\packages\BouncyCastle.1.8.3.1\lib\BouncyCastle.Crypto.dll</HintPath>
</Reference>
<Reference Include="FontAwesome.Sharp, Version=5.15.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\FontAwesome.Sharp.5.15.1\lib\net472\FontAwesome.Sharp.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf, Version=3.11.4.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Protobuf.3.11.4\lib\net45\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4, Version=1.1.11.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.1.1.11\lib\net46\K4os.Compression.LZ4.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.1.11.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.Streams.1.1.11\lib\net46\K4os.Compression.LZ4.Streams.dll</HintPath>
</Reference>
<Reference Include="K4os.Hash.xxHash, Version=1.0.6.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Hash.xxHash.1.0.6\lib\net46\K4os.Hash.xxHash.dll</HintPath>
</Reference>
<Reference Include="MySql.Data, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
<HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Ubiety.Dns.Core, Version=2.2.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\Ubiety.Dns.Core.dll</HintPath>
</Reference>
<Reference Include="Zstandard.Net, Version=1.1.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\Zstandard.Net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Globals.cs" />
<Compile Include="HelperMethods.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="LoginForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LoginForm.Designer.cs">
<DependentUpon>LoginForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormUploadAll.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormUploadAll.Designer.cs">
<DependentUpon>FormUploadAll.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormRun.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormRun.Designer.cs">
<DependentUpon>FormRun.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormRun.resx">
<DependentUpon>FormRun.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormUploadAll.resx">
<DependentUpon>FormUploadAll.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="LoginForm.resx">
<DependentUpon>LoginForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\pkrstarsbot.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,240 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" />
<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>{B25C11D8-E736-4C7E-9F74-977EE5C669C9}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>PokerStarsBotClientv2</RootNamespace>
<AssemblyName>PokerStarsBotClientv2</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</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>
</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>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Properties\pkrstarsbot.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Accessibility">
<Private>True</Private>
</Reference>
<Reference Include="BouncyCastle.Crypto, Version=1.8.3.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
<HintPath>..\packages\BouncyCastle.1.8.3.1\lib\BouncyCastle.Crypto.dll</HintPath>
</Reference>
<Reference Include="Costura, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
<HintPath>..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll</HintPath>
</Reference>
<Reference Include="FontAwesome.Sharp, Version=5.15.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\FontAwesome.Sharp.5.15.1\lib\net472\FontAwesome.Sharp.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="Google.Protobuf, Version=3.11.4.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Protobuf.3.11.4\lib\net45\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4, Version=1.1.11.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.1.1.11\lib\net46\K4os.Compression.LZ4.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.1.11.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Compression.LZ4.Streams.1.1.11\lib\net46\K4os.Compression.LZ4.Streams.dll</HintPath>
</Reference>
<Reference Include="K4os.Hash.xxHash, Version=1.0.6.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Hash.xxHash.1.0.6\lib\net46\K4os.Hash.xxHash.dll</HintPath>
</Reference>
<Reference Include="MySql.Data, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="PresentationCore">
<Private>True</Private>
</Reference>
<Reference Include="PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<Private>True</Private>
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0</HintPath>
</Reference>
<Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
<HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
</Reference>
<Reference Include="System">
<Private>True</Private>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel">
<Private>True</Private>
</Reference>
<Reference Include="System.Configuration">
<Private>True</Private>
</Reference>
<Reference Include="System.Configuration.Install">
<Private>True</Private>
</Reference>
<Reference Include="System.Core">
<Private>True</Private>
</Reference>
<Reference Include="System.Management">
<Private>True</Private>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics">
<Private>True</Private>
</Reference>
<Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Security">
<Private>True</Private>
</Reference>
<Reference Include="System.Transactions">
<Private>True</Private>
</Reference>
<Reference Include="System.Xaml">
<Private>True</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<Private>True</Private>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<Private>True</Private>
</Reference>
<Reference Include="System.Data">
<Private>True</Private>
</Reference>
<Reference Include="System.Deployment">
<Private>True</Private>
</Reference>
<Reference Include="System.Drawing">
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http">
<Private>True</Private>
</Reference>
<Reference Include="System.Windows.Forms">
<Private>True</Private>
</Reference>
<Reference Include="System.Xml">
<Private>True</Private>
</Reference>
<Reference Include="Ubiety.Dns.Core, Version=2.2.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\Ubiety.Dns.Core.dll</HintPath>
</Reference>
<Reference Include="WindowsBase">
<Private>True</Private>
</Reference>
<Reference Include="Zstandard.Net, Version=1.1.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.22\lib\net452\Zstandard.Net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Globals.cs" />
<Compile Include="HelperMethods.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="LoginForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LoginForm.Designer.cs">
<DependentUpon>LoginForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormUploadAll.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormUploadAll.Designer.cs">
<DependentUpon>FormUploadAll.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormRun.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormRun.Designer.cs">
<DependentUpon>FormRun.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormRun.resx">
<DependentUpon>FormRun.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormUploadAll.resx">
<DependentUpon>FormUploadAll.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="LoginForm.resx">
<DependentUpon>LoginForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<Resource Include="Fonts\FontAwesome.otf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\pkrstarsbot.ico" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Fody.6.0.0\build\Fody.targets" Condition="Exists('..\packages\Fody.6.0.0\build\Fody.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Fody.6.0.0\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.0.0\build\Fody.targets'))" />
<Error Condition="!Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props'))" />
</Target>
</Project>

View File

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PokerStarsBotClientv2
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginForm());
}
}
}

View File

@@ -0,0 +1,36 @@
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("PokerStarsBotClientv2")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("PokerStarsBotClientv2")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[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("b25c11d8-e736-4c7e-9f74-977ee5c669c9")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <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 PokerStarsBotClientv2.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PokerStarsBotClientv2.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,110 @@
//------------------------------------------------------------------------------
// <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 PokerStarsBotClientv2.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string UserName {
get {
return ((string)(this["UserName"]));
}
set {
this["UserName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string Password {
get {
return ((string)(this["Password"]));
}
set {
this["Password"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string HandhistoryDir {
get {
return ((string)(this["HandhistoryDir"]));
}
set {
this["HandhistoryDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string HandhistoryDirUploadAll {
get {
return ((string)(this["HandhistoryDirUploadAll"]));
}
set {
this["HandhistoryDirUploadAll"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string UploadAllTimeStamp {
get {
return ((string)(this["UploadAllTimeStamp"]));
}
set {
this["UploadAllTimeStamp"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public decimal DelaySeconds {
get {
return ((decimal)(this["DelaySeconds"]));
}
set {
this["DelaySeconds"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool DelayEnabled {
get {
return ((bool)(this["DelayEnabled"]));
}
set {
this["DelayEnabled"] = value;
}
}
}
}

View File

@@ -0,0 +1,27 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="PokerStarsBotClientv2.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="UserName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="Password" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="HandhistoryDir" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="HandhistoryDirUploadAll" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UploadAllTimeStamp" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="DelaySeconds" Type="System.Decimal" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="DelayEnabled" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,296 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>K4os.Compression.LZ4.Streams</name>
</assembly>
<members>
<member name="T:K4os.Compression.LZ4.Streams.ILZ4Descriptor">
<summary>
LZ4 Frame descriptor.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.ContentLength">
<summary>Content length. Not always known.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.ContentChecksum">
<summary>Indicates if content checksum is provided.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.Chaining">
<summary>Indicates if blocks are chained (dependent) or not (independent).</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.BlockChecksum">
<summary>Indicates if block checksums are provided.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.Dictionary">
<summary>Dictionary id. May be null.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.BlockSize">
<summary>Block size.</summary>
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4DecoderSettings">
<summary>
Decoder settings.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderSettings.ExtraMemory">
<summary>Extra memory for decompression.</summary>
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4DecoderStream">
<summary>
LZ4 Decompression stream handling.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.#ctor(System.IO.Stream,System.Func{K4os.Compression.LZ4.Streams.ILZ4Descriptor,K4os.Compression.LZ4.Encoders.ILZ4Decoder},System.Boolean)">
<summary>Creates new instance <see cref="T:K4os.Compression.LZ4.Streams.LZ4DecoderStream"/>.</summary>
<param name="inner">Inner stream.</param>
<param name="decoderFactory">A function which will create appropriate decoder depending
on frame descriptor.</param>
<param name="leaveOpen">If <c>true</c> inner stream will not be closed after disposing.</param>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Flush">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.ReadByte">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Dispose">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.CanRead">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.CanSeek">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.CanWrite">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Length">
<summary>
Length of stream. Please note, this will only work if original LZ4 stream has
<c>ContentLength</c> field set in descriptor. Otherwise returned value will be <c>-1</c>.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Position">
<summary>
Position within the stream. Position can be read, but cannot be set as LZ4 stream does
not have <c>Seek</c> capability.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.CanTimeout">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.WriteTimeout">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.ReadTimeout">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.SetLength(System.Int64)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.WriteByte(System.Byte)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4EncoderSettings">
<summary>
LZ4 encoder settings.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.ContentLength">
<summary>
Content length. It is not enforced, it can be set to any value, but it will be
written to the stream so it can be used while decoding. If you don't know the length
just leave default value.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.ChainBlocks">
<summary>
Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
(with chaining) provide better compression ratio but are a little but slower and take
more memory.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.BlockSize">
<summary>
Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
better.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.ContentChecksum">
<summary>Indicates is content checksum is provided. Not implemented yet.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.BlockChecksum">
<summary>Indicates if block checksum is provided. Not implemented yet.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.Dictionary">
<summary>Dictionary id. Not implemented yet.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.CompressionLevel">
<summary>Compression level.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.ExtraMemory">
<summary>Extra memory (for the process, more is usually better).</summary>
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4EncoderStream">
<summary>
LZ4 compression stream.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.#ctor(System.IO.Stream,K4os.Compression.LZ4.Streams.ILZ4Descriptor,System.Func{K4os.Compression.LZ4.Streams.ILZ4Descriptor,K4os.Compression.LZ4.Encoders.ILZ4Encoder},System.Boolean)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Streams.LZ4EncoderStream"/>.</summary>
<param name="inner">Inner stream.</param>
<param name="descriptor">LZ4 Descriptor.</param>
<param name="encoderFactory">Function which will take descriptor and return
appropriate encoder.</param>
<param name="leaveOpen">Indicates if <paramref name="inner"/> stream should be left
open after disposing.</param>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Flush">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Close">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.WriteByte(System.Byte)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Dispose">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.CanRead">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.CanSeek">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.CanWrite">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Length">
<summary>Length of the stream and number of bytes written so far.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Position">
<summary>Read-only position in the stream. Trying to set it will throw
<see cref="T:System.InvalidOperationException"/>.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.CanTimeout">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.ReadTimeout">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.WriteTimeout">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.SetLength(System.Int64)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.ReadByte">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4Descriptor">
<summary>
LZ4 frame descriptor.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.ContentLength">
<summary>Content length (if available).</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.ContentChecksum">
<summary>Indicates if content checksum if present.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.Chaining">
<summary>Indicates if blocks are chained.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.BlockChecksum">
<summary>Indicates if block checksums are present.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.Dictionary">
<summary>Dictionary id (or null).</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.BlockSize">
<summary>Block size.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Descriptor.#ctor(System.Nullable{System.Int64},System.Boolean,System.Boolean,System.Boolean,System.Nullable{System.UInt32},System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Streams.LZ4Descriptor"/>.</summary>
<param name="contentLength">Content length.</param>
<param name="contentChecksum">Content checksum flag.</param>
<param name="chaining">Chaining flag.</param>
<param name="blockChecksum">Block checksum flag.</param>
<param name="dictionary">Dictionary id.</param>
<param name="blockSize">Block size.</param>
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4Stream">
<summary>
Utility class with factory methods to create LZ4 compression and decompression streams.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Stream.Encode(System.IO.Stream,K4os.Compression.LZ4.Streams.LZ4EncoderSettings,System.Boolean)">
<summary>Created compression stream on top of inner stream.</summary>
<param name="stream">Inner stream.</param>
<param name="settings">Compression settings.</param>
<param name="leaveOpen">Leave inner stream open after disposing.</param>
<returns>Compression stream.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Stream.Encode(System.IO.Stream,K4os.Compression.LZ4.LZ4Level,System.Int32,System.Boolean)">
<summary>Created compression stream on top of inner stream.</summary>
<param name="stream">Inner stream.</param>
<param name="level">Compression level.</param>
<param name="extraMemory">Extra memory used for compression.</param>
<param name="leaveOpen">Leave inner stream open after disposing.</param>
<returns>Compression stream.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Stream.Decode(System.IO.Stream,K4os.Compression.LZ4.Streams.LZ4DecoderSettings,System.Boolean)">
<summary>Creates decompression stream on top of inner stream.</summary>
<param name="stream">Inner stream.</param>
<param name="settings">Decompression settings.</param>
<param name="leaveOpen">Leave inner stream open after disposing.</param>
<returns>Decompression stream.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Stream.Decode(System.IO.Stream,System.Int32,System.Boolean)">
<summary>Creates decompression stream on top of inner stream.</summary>
<param name="stream">Inner stream.</param>
<param name="extraMemory">Extra memory used for decompression.</param>
<param name="leaveOpen">Leave inner stream open after disposing.</param>
<returns>Decompression stream.</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,794 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>K4os.Compression.LZ4</name>
</assembly>
<members>
<member name="T:K4os.Compression.LZ4.Encoders.EncoderAction">
<summary>
Action performed by encoder using <c>FlushAndEncode</c> method.
</summary>
</member>
<member name="F:K4os.Compression.LZ4.Encoders.EncoderAction.None">
<summary>Nothing has happened, most likely loading 0 bytes.</summary>
</member>
<member name="F:K4os.Compression.LZ4.Encoders.EncoderAction.Loaded">
<summary>Some bytes has been loaded into encoder.</summary>
</member>
<member name="F:K4os.Compression.LZ4.Encoders.EncoderAction.Copied">
<summary>Compression was not possible so bytes has been copied.</summary>
</member>
<member name="F:K4os.Compression.LZ4.Encoders.EncoderAction.Encoded">
<summary>Compression succeeded.</summary>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.ILZ4Decoder">
<summary>
Interface of LZ4 decoder used by LZ4 streams.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.ILZ4Decoder.BlockSize">
<summary>Block size.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.ILZ4Decoder.BytesReady">
<summary>Bytes already decoded and available to be read.
Always smaller than <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Decoder.BlockSize"/></summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Decode(System.Byte*,System.Int32,System.Int32)">
<summary>
Decodes previously compressed block and caches decompressed block in decoder.
Returns number of bytes decoded. These bytes can be read with <see cref="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Drain(System.Byte*,System.Int32,System.Int32)" />.
</summary>
<param name="source">Points to compressed block.</param>
<param name="length">Length of compressed block.</param>
<param name="blockSize">Size of the block. Value <c>0</c> indicates default block size.</param>
<returns>Number of decoded bytes.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Inject(System.Byte*,System.Int32)">
<summary>
Inject already decompressed block and caches it in decoder.
Used with uncompressed-yet-chained blocks and pre-made dictionaries.
These bytes can be read with <see cref="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Drain(System.Byte*,System.Int32,System.Int32)" />.
</summary>
<param name="source">Points to uncompressed block.</param>
<param name="length">Length of uncompressed block.</param>
<returns>Number of decoded bytes.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Drain(System.Byte*,System.Int32,System.Int32)">
<summary>
Reads previously decoded bytes. Please note, <paramref name="offset"/> should be
negative number, pointing to bytes before current head.
</summary>
<param name="target">Buffer to write to.</param>
<param name="offset">Offset in source buffer relatively to current head.
Please note, it should be negative value.</param>
<param name="length">Number of bytes to read.</param>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.ILZ4Encoder">
<summary>
Interface of LZ4 encoder used by LZ4 streams.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BlockSize">
<summary>Block size.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BytesReady">
<summary>Number of bytes read for compression.
Always smaller than <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BlockSize"/></summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Encoder.Topup(System.Byte*,System.Int32)">
<summary>Adds bytes to internal buffer. Increases <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BytesReady"/></summary>
<param name="source">Source buffer.</param>
<param name="length">Source buffer length.</param>
<returns>Number of bytes topped up. If this function returns 0 it means that buffer
is full (<see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BytesReady"/> equals <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BlockSize"/>) and
<see cref="M:K4os.Compression.LZ4.Encoders.ILZ4Encoder.Encode(System.Byte*,System.Int32,System.Boolean)"/> should be called to flush it.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Encoder.Encode(System.Byte*,System.Int32,System.Boolean)">
<summary>
Encodes bytes in internal buffer (see: <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BytesReady"/>, <see cref="M:K4os.Compression.LZ4.Encoders.ILZ4Encoder.Topup(System.Byte*,System.Int32)"/>).
If <paramref name="allowCopy"/> is <c>true</c> then if encoded buffer is bigger than
source buffer source bytes are copied instead. In such case returned length is negative.
</summary>
<param name="target">Target buffer.</param>
<param name="length">Target buffer length.</param>
<param name="allowCopy">Indicates if copying is allowed.</param>
<returns>Length of encoded buffer. Negative if bytes are just copied.</returns>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder">
<summary>
LZ4 decoder used with independent blocks mode. Plase note, that it will fail
if input data has been compressed with chained blocks
(<see cref="T:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder"/> and <see cref="T:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder"/>)
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.BlockSize">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.BytesReady">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.#ctor(System.Int32)">
<summary>Creates new instance of block decoder.</summary>
<param name="blockSize">Block size. Must be equal or greater to one used for compression.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.Decode(System.Byte*,System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.Inject(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.Drain(System.Byte*,System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder">
<summary>
Independent block encoder. Produces larger files but uses less memory and
gives better performance.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder.#ctor(K4os.Compression.LZ4.LZ4Level,System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder"/></summary>
<param name="level">Compression level.</param>
<param name="blockSize">Block size.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder.EncodeBlock(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder.CopyDict(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder">
<summary>LZ4 decoder handling dependent blocks.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.#ctor(System.Int32,System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder"/>.</summary>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.BlockSize">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.BytesReady">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.Decode(System.Byte*,System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.Inject(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.Drain(System.Byte*,System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4Decoder">
<summary>
Static class with factory methods to create LZ4 decoders.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4Decoder.Create(System.Boolean,System.Int32,System.Int32)">
<summary>Creates appropriate decoder for given parameters.</summary>
<param name="chaining">Dependent blocks.</param>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
<returns>LZ4 decoder.</returns>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4Encoder">
<summary>
Static class with factory method to create LZ4 encoders.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4Encoder.Create(System.Boolean,K4os.Compression.LZ4.LZ4Level,System.Int32,System.Int32)">
<summary>Creates appropriate decoder for given parameters.</summary>
<param name="chaining">Dependent blocks.</param>
<param name="level">Compression level.</param>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
<returns>LZ4 encoder.</returns>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4EncoderBase">
<summary>
Base class for LZ4 encoders. Provides basic functionality shared by
<see cref="T:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder"/>, <see cref="T:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder"/>,
and <see cref="T:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder"/> encoders. Do not used directly.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.#ctor(System.Boolean,System.Int32,System.Int32)">
<summary>Creates new instance of encoder.</summary>
<param name="chaining">Needs to be <c>true</c> if using dependent blocks.</param>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.BlockSize">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.BytesReady">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.Topup(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.Encode(System.Byte*,System.Int32,System.Boolean)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.EncodeBlock(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<summary>Encodes single block using appropriate algorithm.</summary>
<param name="source">Source buffer.</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<returns>Number of bytes actually written to target buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.CopyDict(System.Byte*,System.Int32)">
<summary>Copies current dictionary.</summary>
<param name="target">Target buffer.</param>
<param name="dictionaryLength">Dictionary length.</param>
<returns>Dictionary length.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions">
<summary>
Functionality of encoders added on top of fixed interface.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Topup(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte*@,System.Int32)">
<summary>Tops encoder up with some data.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Buffer pointer, will be shifted after operation by the number of
bytes actually loaded.</param>
<param name="length">Length of buffer.</param>
<returns><c>true</c> if buffer was topped up, <c>false</c> if no bytes were loaded.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Topup(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32,System.Int32)">
<summary>Tops encoder up with some data.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Buffer.</param>
<param name="offset">Buffer offset.</param>
<param name="length">Length of buffer.</param>
<returns>Number of bytes actually loaded.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Topup(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32@,System.Int32)">
<summary>Tops encoder up with some data.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Buffer.</param>
<param name="offset">Buffer offset, will be increased after operation by the number
of bytes actually loaded.</param>
<param name="length">Length of buffer.</param>
<returns><c>true</c> if buffer was topped up, <c>false</c> if no bytes were loaded.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Encode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32,System.Int32,System.Boolean)">
<summary>Encodes all bytes currently stored in encoder into target buffer.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer.</param>
<param name="offset">Offset in target buffer.</param>
<param name="length">Length of target buffer.</param>
<param name="allowCopy">if <c>true</c> copying bytes is allowed.</param>
<returns>Number of bytes encoder. If bytes were copied than this value is negative.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Encode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32@,System.Int32,System.Boolean)">
<summary>Encodes all bytes currently stored in encoder into target buffer.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer.</param>
<param name="offset">Offset in target buffer. Will be updated after operation.</param>
<param name="length">Length of target buffer.</param>
<param name="allowCopy">if <c>true</c> copying bytes is allowed.</param>
<returns>Result of this action. Bytes can be Copied (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.Copied"/>),
Encoded (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.Encoded"/>) or nothing could have
happened (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.None"/>).</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Encode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte*@,System.Int32,System.Boolean)">
<summary>Encodes all bytes currently stored in encoder into target buffer.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer. Will be updated after operation.</param>
<param name="length">Length of buffer.</param>
<param name="allowCopy">if <c>true</c> copying bytes is allowed.</param>
<returns>Result of this action. Bytes can be Copied (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.Copied"/>),
Encoded (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.Encoded"/>) or nothing could have
happened (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.None"/>).</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.TopupAndEncode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte*,System.Int32,System.Byte*,System.Int32,System.Boolean,System.Boolean,System.Int32@,System.Int32@)">
<summary>Tops encoder and encodes content.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Source buffer (used to top up from).</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer (used to encode into)</param>
<param name="targetLength">Target buffer length.</param>
<param name="forceEncode">Forces encoding even if encoder is not full.</param>
<param name="allowCopy">Allows to copy bytes if compression was not possible.</param>
<param name="loaded">Number of bytes loaded (topped up)</param>
<param name="encoded">Number if bytes encoded or copied.
Value is 0 if no encoding was done.</param>
<returns>Action performed.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.TopupAndEncode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean,System.Int32@,System.Int32@)">
<summary>Tops encoder and encodes content.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Source buffer (used to top up from).</param>
<param name="sourceOffset">Offset within source buffer.</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer (used to encode into)</param>
<param name="targetOffset">Offset within target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<param name="forceEncode">Forces encoding even if encoder is not full.</param>
<param name="allowCopy">Allows to copy bytes if compression was not possible.</param>
<param name="loaded">Number of bytes loaded (topped up)</param>
<param name="encoded">Number if bytes encoded or copied.
Value is 0 if no encoding was done.</param>
<returns>Action performed.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.FlushAndEncode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte*,System.Int32,System.Boolean,System.Int32@)">
<summary>Encoded remaining bytes in encoder.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<param name="allowCopy">Allows to copy bytes if compression was not possible.</param>
<param name="encoded">Number if bytes encoded or copied.
Value is 0 if no encoding was done.</param>
<returns>Action performed.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.FlushAndEncode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@)">
<summary>Encoded remaining bytes in encoder.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer.</param>
<param name="targetOffset">Offset within target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<param name="allowCopy">Allows to copy bytes if compression was not possible.</param>
<param name="encoded">Number if bytes encoded or copied.
Value is 0 if no encoding was done.</param>
<returns>Action performed.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Drain(K4os.Compression.LZ4.Encoders.ILZ4Decoder,System.Byte[],System.Int32,System.Int32,System.Int32)">
<summary>Drains decoder by reading all bytes which are ready.</summary>
<param name="decoder">Decoder.</param>
<param name="target">Target buffer.</param>
<param name="targetOffset">Offset within target buffer.</param>
<param name="offset">Offset in decoder relatively to decoder's head.
Please note, it should be negative value.</param>
<param name="length">Number of bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.DecodeAndDrain(K4os.Compression.LZ4.Encoders.ILZ4Decoder,System.Byte*,System.Int32,System.Byte*,System.Int32,System.Int32@)">
<summary>Decodes data and immediately drains it into target buffer.</summary>
<param name="decoder">Decoder.</param>
<param name="source">Source buffer (with compressed data, to be decoded).</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer (to drained into).</param>
<param name="targetLength">Target buffer length.</param>
<param name="decoded">Number of bytes actually decoded.</param>
<returns><c>true</c> decoder was drained, <c>false</c> otherwise.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.DecodeAndDrain(K4os.Compression.LZ4.Encoders.ILZ4Decoder,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Int32@)">
<summary>Decodes data and immediately drains it into target buffer.</summary>
<param name="decoder">Decoder.</param>
<param name="source">Source buffer (with compressed data, to be decoded).</param>
<param name="sourceOffset">Offset within source buffer.</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer (to drained into).</param>
<param name="targetOffset">Offset within target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<param name="decoded">Number of bytes actually decoded.</param>
<returns><c>true</c> decoder was drained, <c>false</c> otherwise.</returns>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder">
<summary>
LZ4 encoder using dependent blocks with fast compression.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder.#ctor(System.Int32,System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder"/></summary>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder.EncodeBlock(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder.CopyDict(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder">
<summary>
LZ4 encoder using dependent blocks with high compression.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder.#ctor(K4os.Compression.LZ4.LZ4Level,System.Int32,System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder"/></summary>
<param name="level">Compression level.</param>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder.EncodeBlock(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder.CopyDict(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Internal.Mem">
<summary>Utility class with memory related functions.</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K1">
<summary>1 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K2">
<summary>2 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K4">
<summary>4 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K8">
<summary>8 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K16">
<summary>16 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K32">
<summary>32 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K64">
<summary>64 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K128">
<summary>128 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K256">
<summary>256 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K512">
<summary>512 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.M1">
<summary>1 MiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.M4">
<summary>4 MiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.Empty">
<summary>Empty byte array.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.RoundUp(System.Int32,System.Int32)">
<summary>Rounds integer value up to nearest multiple of step.</summary>
<param name="value">A value.</param>
<param name="step">A step.</param>
<returns>Value rounded up.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Copy(System.Byte*,System.Byte*,System.Int32)">
<summary>
Copies memory block for <paramref name="source"/> to <paramref name="target"/>.
Even though it is called "copy" it actually behaves like "move" which
might be potential problem, although it shouldn't as I cannot think about
any situation when "copy" invalid behaviour (forward copy of overlapping blocks)
can be a desired.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Move(System.Byte*,System.Byte*,System.Int32)">
<summary>
Copies memory block for <paramref name="source"/> to <paramref name="target"/>.
It handle "move" semantic properly handling overlapping blocks properly.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.WildCopy(System.Byte*,System.Byte*,System.Void*)">
<summary>
Copies memory block for <paramref name="source"/> to <paramref name="target"/>
up to (around) <paramref name="limit"/>.
It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="limit">The limit (in target block).</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Zero(System.Byte*,System.Int32)">
<summary>Fill block of memory with zeroes.</summary>
<param name="target">Address.</param>
<param name="length">Length.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Fill(System.Byte*,System.Byte,System.Int32)">
<summary>Fills memory block with repeating pattern of a single byte.</summary>
<param name="target">Address.</param>
<param name="value">A pattern.</param>
<param name="length">Length.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.LoopCopy(System.Byte*,System.Byte*,System.Int32)">
<summary>
Copies memory block for <paramref name="source"/> to <paramref name="target"/>.
This is proper implementation of memcpy (with all then weird behaviour for
overlapping blocks). It is slower than "Copy" but may be required if "Copy"
causes problems.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.LoopCopyBack(System.Byte*,System.Byte*,System.Int32)">
<summary>
Copies memory block backwards from <paramref name="source"/> to <paramref name="target"/>.
This is needed to implement memmove It is slower than "Move" but is needed for .NET 4.5,
which does not implement Buffer.MemoryCopy.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.LoopMove(System.Byte*,System.Byte*,System.Int32)">
<summary>
Moves memory block for <paramref name="source"/> to <paramref name="target"/>.
It handles overlapping block properly.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Copy8(System.Byte*,System.Byte*)">
<summary>Copies exactly 8 bytes from source to target.</summary>
<param name="target">Target address.</param>
<param name="source">Source address.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Copy16(System.Byte*,System.Byte*)">
<summary>Copies exactly 16 bytes from source to target.</summary>
<param name="target">Target address.</param>
<param name="source">Source address.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Copy18(System.Byte*,System.Byte*)">
<summary>Copies exactly 18 bytes from source to target.</summary>
<param name="target">Target address.</param>
<param name="source">Source address.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Alloc(System.Int32)">
<summary>Allocated block of memory. It is NOT initialized with zeroes.</summary>
<param name="size">Size in bytes.</param>
<returns>Pointer to allocated block.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.AllocZero(System.Int32)">
<summary>Allocated block of memory and fills it with zeroes.</summary>
<param name="size">Size in bytes.</param>
<returns>Pointer to allocated block.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Free(System.Void*)">
<summary>
Free memory allocated previously with <see cref="M:K4os.Compression.LZ4.Internal.Mem.Alloc(System.Int32)"/> or <see cref="M:K4os.Compression.LZ4.Internal.Mem.AllocZero(System.Int32)"/>
</summary>
<param name="ptr"></param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Peek8(System.Void*)">
<summary>Reads exactly 1 byte from given address.</summary>
<param name="p">Address.</param>
<returns>Byte at given address.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Peek16(System.Void*)">
<summary>Reads exactly 2 bytes from given address.</summary>
<param name="p">Address.</param>
<returns>2 bytes at given address.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Peek32(System.Void*)">
<summary>Reads exactly 4 bytes from given address.</summary>
<param name="p">Address.</param>
<returns>4 bytes at given address.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Peek64(System.Void*)">
<summary>Reads exactly 8 bytes from given address.</summary>
<param name="p">Address.</param>
<returns>8 bytes at given address.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Poke8(System.Void*,System.Byte)">
<summary>Writes exactly 1 byte to given address.</summary>
<param name="p">Address.</param>
<param name="v">Value.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Poke16(System.Void*,System.UInt16)">
<summary>Writes exactly 2 bytes to given address.</summary>
<param name="p">Address.</param>
<param name="v">Value.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Poke32(System.Void*,System.UInt32)">
<summary>Writes exactly 4 bytes to given address.</summary>
<param name="p">Address.</param>
<param name="v">Value.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Poke64(System.Void*,System.UInt64)">
<summary>Writes exactly 8 bytes to given address.</summary>
<param name="p">Address.</param>
<param name="v">Value.</param>
</member>
<member name="T:K4os.Compression.LZ4.Internal.UnmanagedResources">
<summary>
Skeleton for class with unmanaged resources.
Implements <see cref="T:System.IDisposable"/> but also handles proper release in
case <see cref="M:K4os.Compression.LZ4.Internal.UnmanagedResources.Dispose"/> was not called.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Internal.UnmanagedResources.IsDisposed">
<summary>Determines if object was already disposed.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.ThrowIfDisposed">
<summary>Throws exception is object has been disposed already. Convenience method.</summary>
<exception cref="T:System.ObjectDisposedException">Thrown if object is already disposed.</exception>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.ReleaseUnmanaged">
<summary>Method releasing unmanaged resources.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.ReleaseManaged">
<summary>Method releasing managed resources.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.Dispose(System.Boolean)">
<summary>
Disposed resources.
</summary>
<param name="disposing"><c>true</c> if dispose was explicitly called,
<c>false</c> if called from GC.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.Dispose">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.Finalize">
<summary>Destructor.</summary>
</member>
<member name="T:K4os.Compression.LZ4.LZ4Codec">
<summary>
Static class exposing LZ4 block compression methods.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.MaximumOutputSize(System.Int32)">
<summary>Maximum size after compression.</summary>
<param name="length">Length of input buffer.</param>
<returns>Maximum length after compression.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Encode(System.Byte*,System.Int32,System.Byte*,System.Int32,K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses data from one buffer into another.</summary>
<param name="source">Input buffer.</param>
<param name="sourceLength">Length of input buffer.</param>
<param name="target">Output buffer.</param>
<param name="targetLength">Output buffer length.</param>
<param name="level">Compression level.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Encode(System.ReadOnlySpan{System.Byte},System.Span{System.Byte},K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses data from one buffer into another.</summary>
<param name="source">Input buffer.</param>
<param name="target">Output buffer.</param>
<param name="level">Compression level.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Encode(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses data from one buffer into another.</summary>
<param name="source">Input buffer.</param>
<param name="sourceOffset">Input buffer offset.</param>
<param name="sourceLength">Input buffer length.</param>
<param name="target">Output buffer.</param>
<param name="targetOffset">Output buffer offset.</param>
<param name="targetLength">Output buffer length.</param>
<param name="level">Compression level.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Decode(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<summary>Decompresses data from given buffer.</summary>
<param name="source">Input buffer.</param>
<param name="sourceLength">Input buffer length.</param>
<param name="target">Output buffer.</param>
<param name="targetLength">Output buffer length.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Decode(System.ReadOnlySpan{System.Byte},System.Span{System.Byte})">
<summary>Decompresses data from given buffer.</summary>
<param name="source">Input buffer.</param>
<param name="target">Output buffer.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Decode(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32)">
<summary>Decompresses data from given buffer.</summary>
<param name="source">Input buffer.</param>
<param name="sourceOffset">Input buffer offset.</param>
<param name="sourceLength">Input buffer length.</param>
<param name="target">Output buffer.</param>
<param name="targetOffset">Output buffer offset.</param>
<param name="targetLength">Output buffer length.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="T:K4os.Compression.LZ4.LZ4Level">
<summary>Compression level.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L00_FAST">
<summary>Fast compression.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L03_HC">
<summary>High compression, level 3.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L04_HC">
<summary>High compression, level 4.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L05_HC">
<summary>High compression, level 5.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L06_HC">
<summary>High compression, level 6.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L07_HC">
<summary>High compression, level 7.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L08_HC">
<summary>High compression, level 8.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L09_HC">
<summary>High compression, level 9.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L10_OPT">
<summary>Optimal compression, level 10.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L11_OPT">
<summary>Optimal compression, level 11.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L12_MAX">
<summary>Maximum compression, level 12.</summary>
</member>
<member name="T:K4os.Compression.LZ4.LZ4Pickler">
<summary>
Pickling support with LZ4 compression.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Pickle(System.Byte[],K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses input buffer into self-contained package.</summary>
<param name="source">Input buffer.</param>
<param name="level">Compression level.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Pickle(System.Byte[],System.Int32,System.Int32,K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses input buffer into self-contained package.</summary>
<param name="source">Input buffer.</param>
<param name="sourceOffset">Input buffer offset.</param>
<param name="sourceLength">Input buffer length.</param>
<param name="level">Compression level.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Pickle(System.ReadOnlySpan{System.Byte},K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses input buffer into self-contained package.</summary>
<param name="source">Input buffer.</param>
<param name="level">Compression level.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Pickle(System.Byte*,System.Int32,K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses input buffer into self-contained package.</summary>
<param name="source">Input buffer.</param>
<param name="sourceLength">Length of input data.</param>
<param name="level">Compression level.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Unpickle(System.Byte[])">
<summary>Decompresses previously pickled buffer (see: <see cref="T:K4os.Compression.LZ4.LZ4Pickler"/>.</summary>
<param name="source">Input buffer.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Unpickle(System.Byte[],System.Int32,System.Int32)">
<summary>Decompresses previously pickled buffer (see: <see cref="T:K4os.Compression.LZ4.LZ4Pickler"/>.</summary>
<param name="source">Input buffer.</param>
<param name="sourceOffset">Input buffer offset.</param>
<param name="sourceLength">Input buffer length.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Unpickle(System.ReadOnlySpan{System.Byte})">
<summary>Decompresses previously pickled buffer (see: <see cref="T:K4os.Compression.LZ4.LZ4Pickler"/>.</summary>
<param name="source">Input buffer.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Unpickle(System.Byte*,System.Int32)">
<summary>Decompresses previously pickled buffer (see: <see cref="T:K4os.Compression.LZ4.LZ4Pickler"/>.</summary>
<param name="source">Input buffer.</param>
<param name="sourceLength">Input buffer length.</param>
<returns>Output buffer.</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,163 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>K4os.Hash.xxHash</name>
</assembly>
<members>
<member name="T:K4os.Hash.xxHash.HashAlgorithmAdapter">
<summary>
Adapter implementing <see cref="T:System.Security.Cryptography.HashAlgorithm"/>
</summary>
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.#ctor(System.Int32,System.Action,System.Action{System.Byte[],System.Int32,System.Int32},System.Func{System.Byte[]})">
<summary>
Creates new <see cref="T:K4os.Hash.xxHash.HashAlgorithmAdapter"/>.
</summary>
<param name="hashSize">Hash size (in bytes)</param>
<param name="reset">Reset function.</param>
<param name="update">Update function.</param>
<param name="digest">Digest function.</param>
</member>
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.HashSize">
<inheritdoc />
</member>
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.Hash">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashCore(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashFinal">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.Initialize">
<inheritdoc />
</member>
<member name="T:K4os.Hash.xxHash.XXH">
<summary>
Base class for both <see cref="T:K4os.Hash.xxHash.XXH32"/> and <see cref="T:K4os.Hash.xxHash.XXH64"/>. Do not use directly.
</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH.#ctor">
<summary>Protected constructor to prevent instantiation.</summary>
</member>
<member name="T:K4os.Hash.xxHash.XXH32">
<summary>
xxHash 32-bit.
</summary>
</member>
<member name="F:K4os.Hash.xxHash.XXH32.EmptyHash">
<summary>Hash of empty buffer.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Void*,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.ReadOnlySpan{System.Byte})">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Byte[],System.Int32,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.#ctor">
<summary>Creates xxHash instance.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Reset">
<summary>Resets hash calculation.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte*,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.ReadOnlySpan{System.Byte})">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte[],System.Int32,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Digest">
<summary>Hash so far.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestBytes">
<summary>Hash so far, as byte array.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.AsHashAlgorithm">
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
</member>
<member name="T:K4os.Hash.xxHash.XXH64">
<summary>
xxHash 64-bit.
</summary>
</member>
<member name="F:K4os.Hash.xxHash.XXH64.EmptyHash">
<summary>Hash of empty buffer.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Void*,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.ReadOnlySpan{System.Byte})">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Byte[],System.Int32,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.#ctor">
<summary>Creates xxHash instance.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Reset">
<summary>Resets hash calculation.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte*,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.ReadOnlySpan{System.Byte})">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte[],System.Int32,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Digest">
<summary>Hash so far.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestBytes">
<summary>Hash so far, as byte array.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.AsHashAlgorithm">
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="PokerStarsBotClientv2.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<userSettings>
<PokerStarsBotClientv2.Properties.Settings>
<setting name="UserName" serializeAs="String">
<value />
</setting>
<setting name="Password" serializeAs="String">
<value />
</setting>
<setting name="HandhistoryDir" serializeAs="String">
<value />
</setting>
<setting name="HandhistoryDirUploadAll" serializeAs="String">
<value />
</setting>
<setting name="UploadAllTimeStamp" serializeAs="String">
<value />
</setting>
<setting name="DelaySeconds" serializeAs="String">
<value>0</value>
</setting>
<setting name="DelayEnabled" serializeAs="String">
<value>False</value>
</setting>
</PokerStarsBotClientv2.Properties.Settings>
</userSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Buffers</name>
</assembly>
<members>
<member name="T:System.Buffers.ArrayPool`1">
<summary>Provides a resource pool that enables reusing instances of type <see cref="T[]"></see>.</summary>
<typeparam name="T">The type of the objects that are in the resource pool.</typeparam>
</member>
<member name="M:System.Buffers.ArrayPool`1.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create">
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create(System.Int32,System.Int32)">
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class using the specifed configuration.</summary>
<param name="maxArrayLength">The maximum length of an array instance that may be stored in the pool.</param>
<param name="maxArraysPerBucket">The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.</param>
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class with the specified configuration.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Rent(System.Int32)">
<summary>Retrieves a buffer that is at least the requested length.</summary>
<param name="minimumLength">The minimum length of the array.</param>
<returns>An array of type <see cref="T[]"></see> that is at least <paramref name="minimumLength">minimumLength</paramref> in length.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)">
<summary>Returns an array to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method on the same <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
<param name="array">A buffer to return to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method.</param>
<param name="clearArray">Indicates whether the contents of the buffer should be cleared before reuse. If <paramref name="clearArray">clearArray</paramref> is set to true, and if the pool will store the buffer to enable subsequent reuse, the <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"></see> method will clear the <paramref name="array">array</paramref> of its contents so that a subsequent caller using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method will not see the content of the previous caller. If <paramref name="clearArray">clearArray</paramref> is set to false or if the pool will release the buffer, the array&amp;#39;s contents are left unchanged.</param>
</member>
<member name="P:System.Buffers.ArrayPool`1.Shared">
<summary>Gets a shared <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
<returns>A shared <see cref="System.Buffers.ArrayPool`1"></see> instance.</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,355 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Memory</name>
</assembly>
<members>
<member name="T:System.Span`1">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Span`1.#ctor(`0[])">
<param name="array"></param>
</member>
<member name="M:System.Span`1.#ctor(System.Void*,System.Int32)">
<param name="pointer"></param>
<param name="length"></param>
</member>
<member name="M:System.Span`1.#ctor(`0[],System.Int32)">
<param name="array"></param>
<param name="start"></param>
</member>
<member name="M:System.Span`1.#ctor(`0[],System.Int32,System.Int32)">
<param name="array"></param>
<param name="start"></param>
<param name="length"></param>
</member>
<member name="M:System.Span`1.Clear">
</member>
<member name="M:System.Span`1.CopyTo(System.Span{`0})">
<param name="destination"></param>
</member>
<member name="M:System.Span`1.DangerousCreate(System.Object,`0@,System.Int32)">
<param name="obj"></param>
<param name="objectData"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.DangerousGetPinnableReference">
<returns></returns>
</member>
<member name="P:System.Span`1.Empty">
<returns></returns>
</member>
<member name="M:System.Span`1.Equals(System.Object)">
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Fill(`0)">
<param name="value"></param>
</member>
<member name="M:System.Span`1.GetHashCode">
<returns></returns>
</member>
<member name="P:System.Span`1.IsEmpty">
<returns></returns>
</member>
<member name="P:System.Span`1.Item(System.Int32)">
<param name="index"></param>
<returns></returns>
</member>
<member name="P:System.Span`1.Length">
<returns></returns>
</member>
<member name="M:System.Span`1.op_Equality(System.Span{`0},System.Span{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(System.ArraySegment{T})~System.Span{T}">
<param name="arraySegment"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(System.Span{T})~System.ReadOnlySpan{T}">
<param name="span"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(T[])~System.Span{T}">
<param name="array"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Inequality(System.Span{`0},System.Span{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Slice(System.Int32)">
<param name="start"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Slice(System.Int32,System.Int32)">
<param name="start"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.ToArray">
<returns></returns>
</member>
<member name="M:System.Span`1.TryCopyTo(System.Span{`0})">
<param name="destination"></param>
<returns></returns>
</member>
<member name="T:System.SpanExtensions">
</member>
<member name="M:System.SpanExtensions.AsBytes``1(System.ReadOnlySpan{``0})">
<param name="source"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsBytes``1(System.Span{``0})">
<param name="source"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan(System.String)">
<param name="text"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan``1(System.ArraySegment{``0})">
<param name="arraySegment"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan``1(``0[])">
<param name="array"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.CopyTo``1(``0[],System.Span{``0})">
<param name="array"></param>
<param name="destination"></param>
<typeparam name="T"></typeparam>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.Byte)">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.Byte)">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},``0)">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<param name="value2"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<param name="value2"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="values"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="values"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.NonPortableCast``2(System.ReadOnlySpan{``0})">
<param name="source"></param>
<typeparam name="TFrom"></typeparam>
<typeparam name="TTo"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.NonPortableCast``2(System.Span{``0})">
<param name="source"></param>
<typeparam name="TFrom"></typeparam>
<typeparam name="TTo"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="first"></param>
<param name="second"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="first"></param>
<param name="second"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="first"></param>
<param name="second"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="first"></param>
<param name="second"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="T:System.ReadOnlySpan`1">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[])">
<param name="array"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(System.Void*,System.Int32)">
<param name="pointer"></param>
<param name="length"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32)">
<param name="array"></param>
<param name="start"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32,System.Int32)">
<param name="array"></param>
<param name="start"></param>
<param name="length"></param>
</member>
<member name="M:System.ReadOnlySpan`1.CopyTo(System.Span{`0})">
<param name="destination"></param>
</member>
<member name="M:System.ReadOnlySpan`1.DangerousCreate(System.Object,`0@,System.Int32)">
<param name="obj"></param>
<param name="objectData"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.DangerousGetPinnableReference">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Empty">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Equals(System.Object)">
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.GetHashCode">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.IsEmpty">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Item(System.Int32)">
<param name="index"></param>
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Length">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Equality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Implicit(System.ArraySegment{T})~System.ReadOnlySpan{T}">
<param name="arraySegment"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Implicit(T[])~System.ReadOnlySpan{T}">
<param name="array"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Inequality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32)">
<param name="start"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32,System.Int32)">
<param name="start"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.ToArray">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.TryCopyTo(System.Span{`0})">
<param name="destination"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,200 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Runtime.CompilerServices.Unsafe</name>
</assembly>
<members>
<member name="T:System.Runtime.CompilerServices.Unsafe">
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
<summary>Adds a byte offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="byteOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
<summary>Determines whether the specified references point to the same location.</summary>
<param name="left">The first reference to compare.</param>
<param name="right">The second reference to compare.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>true if <paramref name="left">left</paramref> and <paramref name="right">right</paramref> point to the same location; otherwise, false.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
<summary>Casts the given object to the specified type.</summary>
<param name="o">The object to cast.</param>
<typeparam name="T">The type which the object will be cast to.</typeparam>
<returns>The original object, casted to the given type.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</summary>
<param name="source">The reference to reinterpret.</param>
<typeparam name="TFrom">The type of reference to reinterpret..</typeparam>
<typeparam name="TTo">The desired type of the reference.</typeparam>
<returns>A reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
<summary>Returns a pointer to the given by-ref parameter.</summary>
<param name="value">The object whose pointer is obtained.</param>
<typeparam name="T">The type of object.</typeparam>
<returns>A pointer to the given value.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T">T</typeparamref>.</summary>
<param name="source">The location of the value to reference.</param>
<typeparam name="T">The type of the interpreted location.</typeparam>
<returns>A reference to a value of type <typeparamref name="T">T</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
<summary>Determines the byte offset from origin to target from the given references.</summary>
<param name="origin">The reference to origin.</param>
<param name="target">The reference to target.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>Byte offset from origin to target i.e. <paramref name="target">target</paramref> - <paramref name="origin">origin</paramref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to copy to.</param>
<param name="source">A reference to the value to copy.</param>
<typeparam name="T">The type of value to copy.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to copy to.</param>
<param name="source">A pointer to the value to copy.</param>
<typeparam name="T">The type of value to copy.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
<summary>Copies bytes from the source address to the destination address.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
<summary>Copies bytes from the source address to the destination address.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
<summary>Copies bytes from the source address to the destination address
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
<summary>Copies bytes from the source address to the destination address
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value
without assuming architecture dependent alignment of the address.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value
without assuming architecture dependent alignment of the address.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
<summary>Returns the size of an object of the given type parameter.</summary>
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
<returns>The size of an object of type <typeparamref name="T">T</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
<summary>Subtracts a byte offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="byteOffset"></param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
</members>
</doc>

View File

@@ -0,0 +1,296 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>K4os.Compression.LZ4.Streams</name>
</assembly>
<members>
<member name="T:K4os.Compression.LZ4.Streams.ILZ4Descriptor">
<summary>
LZ4 Frame descriptor.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.ContentLength">
<summary>Content length. Not always known.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.ContentChecksum">
<summary>Indicates if content checksum is provided.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.Chaining">
<summary>Indicates if blocks are chained (dependent) or not (independent).</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.BlockChecksum">
<summary>Indicates if block checksums are provided.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.Dictionary">
<summary>Dictionary id. May be null.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.ILZ4Descriptor.BlockSize">
<summary>Block size.</summary>
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4DecoderSettings">
<summary>
Decoder settings.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderSettings.ExtraMemory">
<summary>Extra memory for decompression.</summary>
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4DecoderStream">
<summary>
LZ4 Decompression stream handling.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.#ctor(System.IO.Stream,System.Func{K4os.Compression.LZ4.Streams.ILZ4Descriptor,K4os.Compression.LZ4.Encoders.ILZ4Decoder},System.Boolean)">
<summary>Creates new instance <see cref="T:K4os.Compression.LZ4.Streams.LZ4DecoderStream"/>.</summary>
<param name="inner">Inner stream.</param>
<param name="decoderFactory">A function which will create appropriate decoder depending
on frame descriptor.</param>
<param name="leaveOpen">If <c>true</c> inner stream will not be closed after disposing.</param>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Flush">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.ReadByte">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Dispose">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.CanRead">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.CanSeek">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.CanWrite">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Length">
<summary>
Length of stream. Please note, this will only work if original LZ4 stream has
<c>ContentLength</c> field set in descriptor. Otherwise returned value will be <c>-1</c>.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Position">
<summary>
Position within the stream. Position can be read, but cannot be set as LZ4 stream does
not have <c>Seek</c> capability.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.CanTimeout">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.WriteTimeout">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4DecoderStream.ReadTimeout">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.SetLength(System.Int64)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.WriteByte(System.Byte)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4DecoderStream.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4EncoderSettings">
<summary>
LZ4 encoder settings.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.ContentLength">
<summary>
Content length. It is not enforced, it can be set to any value, but it will be
written to the stream so it can be used while decoding. If you don't know the length
just leave default value.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.ChainBlocks">
<summary>
Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
(with chaining) provide better compression ratio but are a little but slower and take
more memory.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.BlockSize">
<summary>
Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
better.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.ContentChecksum">
<summary>Indicates is content checksum is provided. Not implemented yet.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.BlockChecksum">
<summary>Indicates if block checksum is provided. Not implemented yet.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.Dictionary">
<summary>Dictionary id. Not implemented yet.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.CompressionLevel">
<summary>Compression level.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderSettings.ExtraMemory">
<summary>Extra memory (for the process, more is usually better).</summary>
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4EncoderStream">
<summary>
LZ4 compression stream.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.#ctor(System.IO.Stream,K4os.Compression.LZ4.Streams.ILZ4Descriptor,System.Func{K4os.Compression.LZ4.Streams.ILZ4Descriptor,K4os.Compression.LZ4.Encoders.ILZ4Encoder},System.Boolean)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Streams.LZ4EncoderStream"/>.</summary>
<param name="inner">Inner stream.</param>
<param name="descriptor">LZ4 Descriptor.</param>
<param name="encoderFactory">Function which will take descriptor and return
appropriate encoder.</param>
<param name="leaveOpen">Indicates if <paramref name="inner"/> stream should be left
open after disposing.</param>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Flush">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Close">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.WriteByte(System.Byte)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Dispose">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.CanRead">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.CanSeek">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.CanWrite">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Length">
<summary>Length of the stream and number of bytes written so far.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Position">
<summary>Read-only position in the stream. Trying to set it will throw
<see cref="T:System.InvalidOperationException"/>.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.CanTimeout">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.ReadTimeout">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4EncoderStream.WriteTimeout">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.SetLength(System.Int64)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4EncoderStream.ReadByte">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4Descriptor">
<summary>
LZ4 frame descriptor.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.ContentLength">
<summary>Content length (if available).</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.ContentChecksum">
<summary>Indicates if content checksum if present.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.Chaining">
<summary>Indicates if blocks are chained.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.BlockChecksum">
<summary>Indicates if block checksums are present.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.Dictionary">
<summary>Dictionary id (or null).</summary>
</member>
<member name="P:K4os.Compression.LZ4.Streams.LZ4Descriptor.BlockSize">
<summary>Block size.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Descriptor.#ctor(System.Nullable{System.Int64},System.Boolean,System.Boolean,System.Boolean,System.Nullable{System.UInt32},System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Streams.LZ4Descriptor"/>.</summary>
<param name="contentLength">Content length.</param>
<param name="contentChecksum">Content checksum flag.</param>
<param name="chaining">Chaining flag.</param>
<param name="blockChecksum">Block checksum flag.</param>
<param name="dictionary">Dictionary id.</param>
<param name="blockSize">Block size.</param>
</member>
<member name="T:K4os.Compression.LZ4.Streams.LZ4Stream">
<summary>
Utility class with factory methods to create LZ4 compression and decompression streams.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Stream.Encode(System.IO.Stream,K4os.Compression.LZ4.Streams.LZ4EncoderSettings,System.Boolean)">
<summary>Created compression stream on top of inner stream.</summary>
<param name="stream">Inner stream.</param>
<param name="settings">Compression settings.</param>
<param name="leaveOpen">Leave inner stream open after disposing.</param>
<returns>Compression stream.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Stream.Encode(System.IO.Stream,K4os.Compression.LZ4.LZ4Level,System.Int32,System.Boolean)">
<summary>Created compression stream on top of inner stream.</summary>
<param name="stream">Inner stream.</param>
<param name="level">Compression level.</param>
<param name="extraMemory">Extra memory used for compression.</param>
<param name="leaveOpen">Leave inner stream open after disposing.</param>
<returns>Compression stream.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Stream.Decode(System.IO.Stream,K4os.Compression.LZ4.Streams.LZ4DecoderSettings,System.Boolean)">
<summary>Creates decompression stream on top of inner stream.</summary>
<param name="stream">Inner stream.</param>
<param name="settings">Decompression settings.</param>
<param name="leaveOpen">Leave inner stream open after disposing.</param>
<returns>Decompression stream.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Streams.LZ4Stream.Decode(System.IO.Stream,System.Int32,System.Boolean)">
<summary>Creates decompression stream on top of inner stream.</summary>
<param name="stream">Inner stream.</param>
<param name="extraMemory">Extra memory used for decompression.</param>
<param name="leaveOpen">Leave inner stream open after disposing.</param>
<returns>Decompression stream.</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,794 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>K4os.Compression.LZ4</name>
</assembly>
<members>
<member name="T:K4os.Compression.LZ4.Encoders.EncoderAction">
<summary>
Action performed by encoder using <c>FlushAndEncode</c> method.
</summary>
</member>
<member name="F:K4os.Compression.LZ4.Encoders.EncoderAction.None">
<summary>Nothing has happened, most likely loading 0 bytes.</summary>
</member>
<member name="F:K4os.Compression.LZ4.Encoders.EncoderAction.Loaded">
<summary>Some bytes has been loaded into encoder.</summary>
</member>
<member name="F:K4os.Compression.LZ4.Encoders.EncoderAction.Copied">
<summary>Compression was not possible so bytes has been copied.</summary>
</member>
<member name="F:K4os.Compression.LZ4.Encoders.EncoderAction.Encoded">
<summary>Compression succeeded.</summary>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.ILZ4Decoder">
<summary>
Interface of LZ4 decoder used by LZ4 streams.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.ILZ4Decoder.BlockSize">
<summary>Block size.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.ILZ4Decoder.BytesReady">
<summary>Bytes already decoded and available to be read.
Always smaller than <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Decoder.BlockSize"/></summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Decode(System.Byte*,System.Int32,System.Int32)">
<summary>
Decodes previously compressed block and caches decompressed block in decoder.
Returns number of bytes decoded. These bytes can be read with <see cref="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Drain(System.Byte*,System.Int32,System.Int32)" />.
</summary>
<param name="source">Points to compressed block.</param>
<param name="length">Length of compressed block.</param>
<param name="blockSize">Size of the block. Value <c>0</c> indicates default block size.</param>
<returns>Number of decoded bytes.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Inject(System.Byte*,System.Int32)">
<summary>
Inject already decompressed block and caches it in decoder.
Used with uncompressed-yet-chained blocks and pre-made dictionaries.
These bytes can be read with <see cref="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Drain(System.Byte*,System.Int32,System.Int32)" />.
</summary>
<param name="source">Points to uncompressed block.</param>
<param name="length">Length of uncompressed block.</param>
<returns>Number of decoded bytes.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Decoder.Drain(System.Byte*,System.Int32,System.Int32)">
<summary>
Reads previously decoded bytes. Please note, <paramref name="offset"/> should be
negative number, pointing to bytes before current head.
</summary>
<param name="target">Buffer to write to.</param>
<param name="offset">Offset in source buffer relatively to current head.
Please note, it should be negative value.</param>
<param name="length">Number of bytes to read.</param>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.ILZ4Encoder">
<summary>
Interface of LZ4 encoder used by LZ4 streams.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BlockSize">
<summary>Block size.</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BytesReady">
<summary>Number of bytes read for compression.
Always smaller than <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BlockSize"/></summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Encoder.Topup(System.Byte*,System.Int32)">
<summary>Adds bytes to internal buffer. Increases <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BytesReady"/></summary>
<param name="source">Source buffer.</param>
<param name="length">Source buffer length.</param>
<returns>Number of bytes topped up. If this function returns 0 it means that buffer
is full (<see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BytesReady"/> equals <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BlockSize"/>) and
<see cref="M:K4os.Compression.LZ4.Encoders.ILZ4Encoder.Encode(System.Byte*,System.Int32,System.Boolean)"/> should be called to flush it.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.ILZ4Encoder.Encode(System.Byte*,System.Int32,System.Boolean)">
<summary>
Encodes bytes in internal buffer (see: <see cref="P:K4os.Compression.LZ4.Encoders.ILZ4Encoder.BytesReady"/>, <see cref="M:K4os.Compression.LZ4.Encoders.ILZ4Encoder.Topup(System.Byte*,System.Int32)"/>).
If <paramref name="allowCopy"/> is <c>true</c> then if encoded buffer is bigger than
source buffer source bytes are copied instead. In such case returned length is negative.
</summary>
<param name="target">Target buffer.</param>
<param name="length">Target buffer length.</param>
<param name="allowCopy">Indicates if copying is allowed.</param>
<returns>Length of encoded buffer. Negative if bytes are just copied.</returns>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder">
<summary>
LZ4 decoder used with independent blocks mode. Plase note, that it will fail
if input data has been compressed with chained blocks
(<see cref="T:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder"/> and <see cref="T:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder"/>)
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.BlockSize">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.BytesReady">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.#ctor(System.Int32)">
<summary>Creates new instance of block decoder.</summary>
<param name="blockSize">Block size. Must be equal or greater to one used for compression.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.Decode(System.Byte*,System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.Inject(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.Drain(System.Byte*,System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockDecoder.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder">
<summary>
Independent block encoder. Produces larger files but uses less memory and
gives better performance.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder.#ctor(K4os.Compression.LZ4.LZ4Level,System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder"/></summary>
<param name="level">Compression level.</param>
<param name="blockSize">Block size.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder.EncodeBlock(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder.CopyDict(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder">
<summary>LZ4 decoder handling dependent blocks.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.#ctor(System.Int32,System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder"/>.</summary>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.BlockSize">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.BytesReady">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.Decode(System.Byte*,System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.Inject(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.Drain(System.Byte*,System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4ChainDecoder.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4Decoder">
<summary>
Static class with factory methods to create LZ4 decoders.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4Decoder.Create(System.Boolean,System.Int32,System.Int32)">
<summary>Creates appropriate decoder for given parameters.</summary>
<param name="chaining">Dependent blocks.</param>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
<returns>LZ4 decoder.</returns>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4Encoder">
<summary>
Static class with factory method to create LZ4 encoders.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4Encoder.Create(System.Boolean,K4os.Compression.LZ4.LZ4Level,System.Int32,System.Int32)">
<summary>Creates appropriate decoder for given parameters.</summary>
<param name="chaining">Dependent blocks.</param>
<param name="level">Compression level.</param>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
<returns>LZ4 encoder.</returns>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4EncoderBase">
<summary>
Base class for LZ4 encoders. Provides basic functionality shared by
<see cref="T:K4os.Compression.LZ4.Encoders.LZ4BlockEncoder"/>, <see cref="T:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder"/>,
and <see cref="T:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder"/> encoders. Do not used directly.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.#ctor(System.Boolean,System.Int32,System.Int32)">
<summary>Creates new instance of encoder.</summary>
<param name="chaining">Needs to be <c>true</c> if using dependent blocks.</param>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.BlockSize">
<inheritdoc />
</member>
<member name="P:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.BytesReady">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.Topup(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.Encode(System.Byte*,System.Int32,System.Boolean)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.EncodeBlock(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<summary>Encodes single block using appropriate algorithm.</summary>
<param name="source">Source buffer.</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<returns>Number of bytes actually written to target buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.CopyDict(System.Byte*,System.Int32)">
<summary>Copies current dictionary.</summary>
<param name="target">Target buffer.</param>
<param name="dictionaryLength">Dictionary length.</param>
<returns>Dictionary length.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderBase.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions">
<summary>
Functionality of encoders added on top of fixed interface.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Topup(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte*@,System.Int32)">
<summary>Tops encoder up with some data.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Buffer pointer, will be shifted after operation by the number of
bytes actually loaded.</param>
<param name="length">Length of buffer.</param>
<returns><c>true</c> if buffer was topped up, <c>false</c> if no bytes were loaded.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Topup(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32,System.Int32)">
<summary>Tops encoder up with some data.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Buffer.</param>
<param name="offset">Buffer offset.</param>
<param name="length">Length of buffer.</param>
<returns>Number of bytes actually loaded.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Topup(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32@,System.Int32)">
<summary>Tops encoder up with some data.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Buffer.</param>
<param name="offset">Buffer offset, will be increased after operation by the number
of bytes actually loaded.</param>
<param name="length">Length of buffer.</param>
<returns><c>true</c> if buffer was topped up, <c>false</c> if no bytes were loaded.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Encode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32,System.Int32,System.Boolean)">
<summary>Encodes all bytes currently stored in encoder into target buffer.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer.</param>
<param name="offset">Offset in target buffer.</param>
<param name="length">Length of target buffer.</param>
<param name="allowCopy">if <c>true</c> copying bytes is allowed.</param>
<returns>Number of bytes encoder. If bytes were copied than this value is negative.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Encode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32@,System.Int32,System.Boolean)">
<summary>Encodes all bytes currently stored in encoder into target buffer.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer.</param>
<param name="offset">Offset in target buffer. Will be updated after operation.</param>
<param name="length">Length of target buffer.</param>
<param name="allowCopy">if <c>true</c> copying bytes is allowed.</param>
<returns>Result of this action. Bytes can be Copied (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.Copied"/>),
Encoded (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.Encoded"/>) or nothing could have
happened (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.None"/>).</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Encode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte*@,System.Int32,System.Boolean)">
<summary>Encodes all bytes currently stored in encoder into target buffer.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer. Will be updated after operation.</param>
<param name="length">Length of buffer.</param>
<param name="allowCopy">if <c>true</c> copying bytes is allowed.</param>
<returns>Result of this action. Bytes can be Copied (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.Copied"/>),
Encoded (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.Encoded"/>) or nothing could have
happened (<see cref="F:K4os.Compression.LZ4.Encoders.EncoderAction.None"/>).</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.TopupAndEncode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte*,System.Int32,System.Byte*,System.Int32,System.Boolean,System.Boolean,System.Int32@,System.Int32@)">
<summary>Tops encoder and encodes content.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Source buffer (used to top up from).</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer (used to encode into)</param>
<param name="targetLength">Target buffer length.</param>
<param name="forceEncode">Forces encoding even if encoder is not full.</param>
<param name="allowCopy">Allows to copy bytes if compression was not possible.</param>
<param name="loaded">Number of bytes loaded (topped up)</param>
<param name="encoded">Number if bytes encoded or copied.
Value is 0 if no encoding was done.</param>
<returns>Action performed.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.TopupAndEncode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean,System.Int32@,System.Int32@)">
<summary>Tops encoder and encodes content.</summary>
<param name="encoder">Encoder.</param>
<param name="source">Source buffer (used to top up from).</param>
<param name="sourceOffset">Offset within source buffer.</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer (used to encode into)</param>
<param name="targetOffset">Offset within target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<param name="forceEncode">Forces encoding even if encoder is not full.</param>
<param name="allowCopy">Allows to copy bytes if compression was not possible.</param>
<param name="loaded">Number of bytes loaded (topped up)</param>
<param name="encoded">Number if bytes encoded or copied.
Value is 0 if no encoding was done.</param>
<returns>Action performed.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.FlushAndEncode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte*,System.Int32,System.Boolean,System.Int32@)">
<summary>Encoded remaining bytes in encoder.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<param name="allowCopy">Allows to copy bytes if compression was not possible.</param>
<param name="encoded">Number if bytes encoded or copied.
Value is 0 if no encoding was done.</param>
<returns>Action performed.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.FlushAndEncode(K4os.Compression.LZ4.Encoders.ILZ4Encoder,System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@)">
<summary>Encoded remaining bytes in encoder.</summary>
<param name="encoder">Encoder.</param>
<param name="target">Target buffer.</param>
<param name="targetOffset">Offset within target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<param name="allowCopy">Allows to copy bytes if compression was not possible.</param>
<param name="encoded">Number if bytes encoded or copied.
Value is 0 if no encoding was done.</param>
<returns>Action performed.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.Drain(K4os.Compression.LZ4.Encoders.ILZ4Decoder,System.Byte[],System.Int32,System.Int32,System.Int32)">
<summary>Drains decoder by reading all bytes which are ready.</summary>
<param name="decoder">Decoder.</param>
<param name="target">Target buffer.</param>
<param name="targetOffset">Offset within target buffer.</param>
<param name="offset">Offset in decoder relatively to decoder's head.
Please note, it should be negative value.</param>
<param name="length">Number of bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.DecodeAndDrain(K4os.Compression.LZ4.Encoders.ILZ4Decoder,System.Byte*,System.Int32,System.Byte*,System.Int32,System.Int32@)">
<summary>Decodes data and immediately drains it into target buffer.</summary>
<param name="decoder">Decoder.</param>
<param name="source">Source buffer (with compressed data, to be decoded).</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer (to drained into).</param>
<param name="targetLength">Target buffer length.</param>
<param name="decoded">Number of bytes actually decoded.</param>
<returns><c>true</c> decoder was drained, <c>false</c> otherwise.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4EncoderExtensions.DecodeAndDrain(K4os.Compression.LZ4.Encoders.ILZ4Decoder,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Int32@)">
<summary>Decodes data and immediately drains it into target buffer.</summary>
<param name="decoder">Decoder.</param>
<param name="source">Source buffer (with compressed data, to be decoded).</param>
<param name="sourceOffset">Offset within source buffer.</param>
<param name="sourceLength">Source buffer length.</param>
<param name="target">Target buffer (to drained into).</param>
<param name="targetOffset">Offset within target buffer.</param>
<param name="targetLength">Target buffer length.</param>
<param name="decoded">Number of bytes actually decoded.</param>
<returns><c>true</c> decoder was drained, <c>false</c> otherwise.</returns>
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder">
<summary>
LZ4 encoder using dependent blocks with fast compression.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder.#ctor(System.Int32,System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder"/></summary>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder.EncodeBlock(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4FastChainEncoder.CopyDict(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder">
<summary>
LZ4 encoder using dependent blocks with high compression.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder.#ctor(K4os.Compression.LZ4.LZ4Level,System.Int32,System.Int32)">
<summary>Creates new instance of <see cref="T:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder"/></summary>
<param name="level">Compression level.</param>
<param name="blockSize">Block size.</param>
<param name="extraBlocks">Number of extra blocks.</param>
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder.ReleaseUnmanaged">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder.EncodeBlock(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Encoders.LZ4HighChainEncoder.CopyDict(System.Byte*,System.Int32)">
<inheritdoc />
</member>
<member name="T:K4os.Compression.LZ4.Internal.Mem">
<summary>Utility class with memory related functions.</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K1">
<summary>1 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K2">
<summary>2 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K4">
<summary>4 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K8">
<summary>8 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K16">
<summary>16 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K32">
<summary>32 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K64">
<summary>64 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K128">
<summary>128 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K256">
<summary>256 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.K512">
<summary>512 KiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.M1">
<summary>1 MiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.M4">
<summary>4 MiB</summary>
</member>
<member name="F:K4os.Compression.LZ4.Internal.Mem.Empty">
<summary>Empty byte array.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.RoundUp(System.Int32,System.Int32)">
<summary>Rounds integer value up to nearest multiple of step.</summary>
<param name="value">A value.</param>
<param name="step">A step.</param>
<returns>Value rounded up.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Copy(System.Byte*,System.Byte*,System.Int32)">
<summary>
Copies memory block for <paramref name="source"/> to <paramref name="target"/>.
Even though it is called "copy" it actually behaves like "move" which
might be potential problem, although it shouldn't as I cannot think about
any situation when "copy" invalid behaviour (forward copy of overlapping blocks)
can be a desired.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Move(System.Byte*,System.Byte*,System.Int32)">
<summary>
Copies memory block for <paramref name="source"/> to <paramref name="target"/>.
It handle "move" semantic properly handling overlapping blocks properly.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.WildCopy(System.Byte*,System.Byte*,System.Void*)">
<summary>
Copies memory block for <paramref name="source"/> to <paramref name="target"/>
up to (around) <paramref name="limit"/>.
It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="limit">The limit (in target block).</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Zero(System.Byte*,System.Int32)">
<summary>Fill block of memory with zeroes.</summary>
<param name="target">Address.</param>
<param name="length">Length.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Fill(System.Byte*,System.Byte,System.Int32)">
<summary>Fills memory block with repeating pattern of a single byte.</summary>
<param name="target">Address.</param>
<param name="value">A pattern.</param>
<param name="length">Length.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.LoopCopy(System.Byte*,System.Byte*,System.Int32)">
<summary>
Copies memory block for <paramref name="source"/> to <paramref name="target"/>.
This is proper implementation of memcpy (with all then weird behaviour for
overlapping blocks). It is slower than "Copy" but may be required if "Copy"
causes problems.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.LoopCopyBack(System.Byte*,System.Byte*,System.Int32)">
<summary>
Copies memory block backwards from <paramref name="source"/> to <paramref name="target"/>.
This is needed to implement memmove It is slower than "Move" but is needed for .NET 4.5,
which does not implement Buffer.MemoryCopy.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.LoopMove(System.Byte*,System.Byte*,System.Int32)">
<summary>
Moves memory block for <paramref name="source"/> to <paramref name="target"/>.
It handles overlapping block properly.
</summary>
<param name="target">The target block address.</param>
<param name="source">The source block address.</param>
<param name="length">Length in bytes.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Copy8(System.Byte*,System.Byte*)">
<summary>Copies exactly 8 bytes from source to target.</summary>
<param name="target">Target address.</param>
<param name="source">Source address.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Copy16(System.Byte*,System.Byte*)">
<summary>Copies exactly 16 bytes from source to target.</summary>
<param name="target">Target address.</param>
<param name="source">Source address.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Copy18(System.Byte*,System.Byte*)">
<summary>Copies exactly 18 bytes from source to target.</summary>
<param name="target">Target address.</param>
<param name="source">Source address.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Alloc(System.Int32)">
<summary>Allocated block of memory. It is NOT initialized with zeroes.</summary>
<param name="size">Size in bytes.</param>
<returns>Pointer to allocated block.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.AllocZero(System.Int32)">
<summary>Allocated block of memory and fills it with zeroes.</summary>
<param name="size">Size in bytes.</param>
<returns>Pointer to allocated block.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Free(System.Void*)">
<summary>
Free memory allocated previously with <see cref="M:K4os.Compression.LZ4.Internal.Mem.Alloc(System.Int32)"/> or <see cref="M:K4os.Compression.LZ4.Internal.Mem.AllocZero(System.Int32)"/>
</summary>
<param name="ptr"></param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Peek8(System.Void*)">
<summary>Reads exactly 1 byte from given address.</summary>
<param name="p">Address.</param>
<returns>Byte at given address.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Peek16(System.Void*)">
<summary>Reads exactly 2 bytes from given address.</summary>
<param name="p">Address.</param>
<returns>2 bytes at given address.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Peek32(System.Void*)">
<summary>Reads exactly 4 bytes from given address.</summary>
<param name="p">Address.</param>
<returns>4 bytes at given address.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Peek64(System.Void*)">
<summary>Reads exactly 8 bytes from given address.</summary>
<param name="p">Address.</param>
<returns>8 bytes at given address.</returns>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Poke8(System.Void*,System.Byte)">
<summary>Writes exactly 1 byte to given address.</summary>
<param name="p">Address.</param>
<param name="v">Value.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Poke16(System.Void*,System.UInt16)">
<summary>Writes exactly 2 bytes to given address.</summary>
<param name="p">Address.</param>
<param name="v">Value.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Poke32(System.Void*,System.UInt32)">
<summary>Writes exactly 4 bytes to given address.</summary>
<param name="p">Address.</param>
<param name="v">Value.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.Mem.Poke64(System.Void*,System.UInt64)">
<summary>Writes exactly 8 bytes to given address.</summary>
<param name="p">Address.</param>
<param name="v">Value.</param>
</member>
<member name="T:K4os.Compression.LZ4.Internal.UnmanagedResources">
<summary>
Skeleton for class with unmanaged resources.
Implements <see cref="T:System.IDisposable"/> but also handles proper release in
case <see cref="M:K4os.Compression.LZ4.Internal.UnmanagedResources.Dispose"/> was not called.
</summary>
</member>
<member name="P:K4os.Compression.LZ4.Internal.UnmanagedResources.IsDisposed">
<summary>Determines if object was already disposed.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.ThrowIfDisposed">
<summary>Throws exception is object has been disposed already. Convenience method.</summary>
<exception cref="T:System.ObjectDisposedException">Thrown if object is already disposed.</exception>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.ReleaseUnmanaged">
<summary>Method releasing unmanaged resources.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.ReleaseManaged">
<summary>Method releasing managed resources.</summary>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.Dispose(System.Boolean)">
<summary>
Disposed resources.
</summary>
<param name="disposing"><c>true</c> if dispose was explicitly called,
<c>false</c> if called from GC.</param>
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.Dispose">
<inheritdoc />
</member>
<member name="M:K4os.Compression.LZ4.Internal.UnmanagedResources.Finalize">
<summary>Destructor.</summary>
</member>
<member name="T:K4os.Compression.LZ4.LZ4Codec">
<summary>
Static class exposing LZ4 block compression methods.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.MaximumOutputSize(System.Int32)">
<summary>Maximum size after compression.</summary>
<param name="length">Length of input buffer.</param>
<returns>Maximum length after compression.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Encode(System.Byte*,System.Int32,System.Byte*,System.Int32,K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses data from one buffer into another.</summary>
<param name="source">Input buffer.</param>
<param name="sourceLength">Length of input buffer.</param>
<param name="target">Output buffer.</param>
<param name="targetLength">Output buffer length.</param>
<param name="level">Compression level.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Encode(System.ReadOnlySpan{System.Byte},System.Span{System.Byte},K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses data from one buffer into another.</summary>
<param name="source">Input buffer.</param>
<param name="target">Output buffer.</param>
<param name="level">Compression level.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Encode(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses data from one buffer into another.</summary>
<param name="source">Input buffer.</param>
<param name="sourceOffset">Input buffer offset.</param>
<param name="sourceLength">Input buffer length.</param>
<param name="target">Output buffer.</param>
<param name="targetOffset">Output buffer offset.</param>
<param name="targetLength">Output buffer length.</param>
<param name="level">Compression level.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Decode(System.Byte*,System.Int32,System.Byte*,System.Int32)">
<summary>Decompresses data from given buffer.</summary>
<param name="source">Input buffer.</param>
<param name="sourceLength">Input buffer length.</param>
<param name="target">Output buffer.</param>
<param name="targetLength">Output buffer length.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Decode(System.ReadOnlySpan{System.Byte},System.Span{System.Byte})">
<summary>Decompresses data from given buffer.</summary>
<param name="source">Input buffer.</param>
<param name="target">Output buffer.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Codec.Decode(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32)">
<summary>Decompresses data from given buffer.</summary>
<param name="source">Input buffer.</param>
<param name="sourceOffset">Input buffer offset.</param>
<param name="sourceLength">Input buffer length.</param>
<param name="target">Output buffer.</param>
<param name="targetOffset">Output buffer offset.</param>
<param name="targetLength">Output buffer length.</param>
<returns>Number of bytes written, or negative value if output buffer is too small.</returns>
</member>
<member name="T:K4os.Compression.LZ4.LZ4Level">
<summary>Compression level.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L00_FAST">
<summary>Fast compression.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L03_HC">
<summary>High compression, level 3.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L04_HC">
<summary>High compression, level 4.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L05_HC">
<summary>High compression, level 5.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L06_HC">
<summary>High compression, level 6.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L07_HC">
<summary>High compression, level 7.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L08_HC">
<summary>High compression, level 8.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L09_HC">
<summary>High compression, level 9.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L10_OPT">
<summary>Optimal compression, level 10.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L11_OPT">
<summary>Optimal compression, level 11.</summary>
</member>
<member name="F:K4os.Compression.LZ4.LZ4Level.L12_MAX">
<summary>Maximum compression, level 12.</summary>
</member>
<member name="T:K4os.Compression.LZ4.LZ4Pickler">
<summary>
Pickling support with LZ4 compression.
</summary>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Pickle(System.Byte[],K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses input buffer into self-contained package.</summary>
<param name="source">Input buffer.</param>
<param name="level">Compression level.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Pickle(System.Byte[],System.Int32,System.Int32,K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses input buffer into self-contained package.</summary>
<param name="source">Input buffer.</param>
<param name="sourceOffset">Input buffer offset.</param>
<param name="sourceLength">Input buffer length.</param>
<param name="level">Compression level.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Pickle(System.ReadOnlySpan{System.Byte},K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses input buffer into self-contained package.</summary>
<param name="source">Input buffer.</param>
<param name="level">Compression level.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Pickle(System.Byte*,System.Int32,K4os.Compression.LZ4.LZ4Level)">
<summary>Compresses input buffer into self-contained package.</summary>
<param name="source">Input buffer.</param>
<param name="sourceLength">Length of input data.</param>
<param name="level">Compression level.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Unpickle(System.Byte[])">
<summary>Decompresses previously pickled buffer (see: <see cref="T:K4os.Compression.LZ4.LZ4Pickler"/>.</summary>
<param name="source">Input buffer.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Unpickle(System.Byte[],System.Int32,System.Int32)">
<summary>Decompresses previously pickled buffer (see: <see cref="T:K4os.Compression.LZ4.LZ4Pickler"/>.</summary>
<param name="source">Input buffer.</param>
<param name="sourceOffset">Input buffer offset.</param>
<param name="sourceLength">Input buffer length.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Unpickle(System.ReadOnlySpan{System.Byte})">
<summary>Decompresses previously pickled buffer (see: <see cref="T:K4os.Compression.LZ4.LZ4Pickler"/>.</summary>
<param name="source">Input buffer.</param>
<returns>Output buffer.</returns>
</member>
<member name="M:K4os.Compression.LZ4.LZ4Pickler.Unpickle(System.Byte*,System.Int32)">
<summary>Decompresses previously pickled buffer (see: <see cref="T:K4os.Compression.LZ4.LZ4Pickler"/>.</summary>
<param name="source">Input buffer.</param>
<param name="sourceLength">Input buffer length.</param>
<returns>Output buffer.</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,163 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>K4os.Hash.xxHash</name>
</assembly>
<members>
<member name="T:K4os.Hash.xxHash.HashAlgorithmAdapter">
<summary>
Adapter implementing <see cref="T:System.Security.Cryptography.HashAlgorithm"/>
</summary>
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.#ctor(System.Int32,System.Action,System.Action{System.Byte[],System.Int32,System.Int32},System.Func{System.Byte[]})">
<summary>
Creates new <see cref="T:K4os.Hash.xxHash.HashAlgorithmAdapter"/>.
</summary>
<param name="hashSize">Hash size (in bytes)</param>
<param name="reset">Reset function.</param>
<param name="update">Update function.</param>
<param name="digest">Digest function.</param>
</member>
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.HashSize">
<inheritdoc />
</member>
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.Hash">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashCore(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashFinal">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.Initialize">
<inheritdoc />
</member>
<member name="T:K4os.Hash.xxHash.XXH">
<summary>
Base class for both <see cref="T:K4os.Hash.xxHash.XXH32"/> and <see cref="T:K4os.Hash.xxHash.XXH64"/>. Do not use directly.
</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH.#ctor">
<summary>Protected constructor to prevent instantiation.</summary>
</member>
<member name="T:K4os.Hash.xxHash.XXH32">
<summary>
xxHash 32-bit.
</summary>
</member>
<member name="F:K4os.Hash.xxHash.XXH32.EmptyHash">
<summary>Hash of empty buffer.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Void*,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.ReadOnlySpan{System.Byte})">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Byte[],System.Int32,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.#ctor">
<summary>Creates xxHash instance.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Reset">
<summary>Resets hash calculation.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte*,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.ReadOnlySpan{System.Byte})">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte[],System.Int32,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Digest">
<summary>Hash so far.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestBytes">
<summary>Hash so far, as byte array.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.AsHashAlgorithm">
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
</member>
<member name="T:K4os.Hash.xxHash.XXH64">
<summary>
xxHash 64-bit.
</summary>
</member>
<member name="F:K4os.Hash.xxHash.XXH64.EmptyHash">
<summary>Hash of empty buffer.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Void*,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.ReadOnlySpan{System.Byte})">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Byte[],System.Int32,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.#ctor">
<summary>Creates xxHash instance.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Reset">
<summary>Resets hash calculation.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte*,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.ReadOnlySpan{System.Byte})">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte[],System.Int32,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Digest">
<summary>Hash so far.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestBytes">
<summary>Hash so far, as byte array.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.AsHashAlgorithm">
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="PokerStarsBotClientv2.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<userSettings>
<PokerStarsBotClientv2.Properties.Settings>
<setting name="UserName" serializeAs="String">
<value />
</setting>
<setting name="Password" serializeAs="String">
<value />
</setting>
<setting name="HandhistoryDir" serializeAs="String">
<value />
</setting>
<setting name="HandhistoryDirUploadAll" serializeAs="String">
<value />
</setting>
<setting name="UploadAllTimeStamp" serializeAs="String">
<value />
</setting>
<setting name="DelaySeconds" serializeAs="String">
<value>0</value>
</setting>
<setting name="DelayEnabled" serializeAs="String">
<value>False</value>
</setting>
</PokerStarsBotClientv2.Properties.Settings>
</userSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Buffers</name>
</assembly>
<members>
<member name="T:System.Buffers.ArrayPool`1">
<summary>Provides a resource pool that enables reusing instances of type <see cref="T[]"></see>.</summary>
<typeparam name="T">The type of the objects that are in the resource pool.</typeparam>
</member>
<member name="M:System.Buffers.ArrayPool`1.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create">
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create(System.Int32,System.Int32)">
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class using the specifed configuration.</summary>
<param name="maxArrayLength">The maximum length of an array instance that may be stored in the pool.</param>
<param name="maxArraysPerBucket">The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.</param>
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class with the specified configuration.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Rent(System.Int32)">
<summary>Retrieves a buffer that is at least the requested length.</summary>
<param name="minimumLength">The minimum length of the array.</param>
<returns>An array of type <see cref="T[]"></see> that is at least <paramref name="minimumLength">minimumLength</paramref> in length.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)">
<summary>Returns an array to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method on the same <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
<param name="array">A buffer to return to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method.</param>
<param name="clearArray">Indicates whether the contents of the buffer should be cleared before reuse. If <paramref name="clearArray">clearArray</paramref> is set to true, and if the pool will store the buffer to enable subsequent reuse, the <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"></see> method will clear the <paramref name="array">array</paramref> of its contents so that a subsequent caller using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method will not see the content of the previous caller. If <paramref name="clearArray">clearArray</paramref> is set to false or if the pool will release the buffer, the array&amp;#39;s contents are left unchanged.</param>
</member>
<member name="P:System.Buffers.ArrayPool`1.Shared">
<summary>Gets a shared <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
<returns>A shared <see cref="System.Buffers.ArrayPool`1"></see> instance.</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,355 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Memory</name>
</assembly>
<members>
<member name="T:System.Span`1">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Span`1.#ctor(`0[])">
<param name="array"></param>
</member>
<member name="M:System.Span`1.#ctor(System.Void*,System.Int32)">
<param name="pointer"></param>
<param name="length"></param>
</member>
<member name="M:System.Span`1.#ctor(`0[],System.Int32)">
<param name="array"></param>
<param name="start"></param>
</member>
<member name="M:System.Span`1.#ctor(`0[],System.Int32,System.Int32)">
<param name="array"></param>
<param name="start"></param>
<param name="length"></param>
</member>
<member name="M:System.Span`1.Clear">
</member>
<member name="M:System.Span`1.CopyTo(System.Span{`0})">
<param name="destination"></param>
</member>
<member name="M:System.Span`1.DangerousCreate(System.Object,`0@,System.Int32)">
<param name="obj"></param>
<param name="objectData"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.DangerousGetPinnableReference">
<returns></returns>
</member>
<member name="P:System.Span`1.Empty">
<returns></returns>
</member>
<member name="M:System.Span`1.Equals(System.Object)">
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Fill(`0)">
<param name="value"></param>
</member>
<member name="M:System.Span`1.GetHashCode">
<returns></returns>
</member>
<member name="P:System.Span`1.IsEmpty">
<returns></returns>
</member>
<member name="P:System.Span`1.Item(System.Int32)">
<param name="index"></param>
<returns></returns>
</member>
<member name="P:System.Span`1.Length">
<returns></returns>
</member>
<member name="M:System.Span`1.op_Equality(System.Span{`0},System.Span{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(System.ArraySegment{T})~System.Span{T}">
<param name="arraySegment"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(System.Span{T})~System.ReadOnlySpan{T}">
<param name="span"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(T[])~System.Span{T}">
<param name="array"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Inequality(System.Span{`0},System.Span{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Slice(System.Int32)">
<param name="start"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Slice(System.Int32,System.Int32)">
<param name="start"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.ToArray">
<returns></returns>
</member>
<member name="M:System.Span`1.TryCopyTo(System.Span{`0})">
<param name="destination"></param>
<returns></returns>
</member>
<member name="T:System.SpanExtensions">
</member>
<member name="M:System.SpanExtensions.AsBytes``1(System.ReadOnlySpan{``0})">
<param name="source"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsBytes``1(System.Span{``0})">
<param name="source"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan(System.String)">
<param name="text"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan``1(System.ArraySegment{``0})">
<param name="arraySegment"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan``1(``0[])">
<param name="array"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.CopyTo``1(``0[],System.Span{``0})">
<param name="array"></param>
<param name="destination"></param>
<typeparam name="T"></typeparam>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.Byte)">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.Byte)">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},``0)">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<param name="value2"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<param name="value2"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="values"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="values"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.NonPortableCast``2(System.ReadOnlySpan{``0})">
<param name="source"></param>
<typeparam name="TFrom"></typeparam>
<typeparam name="TTo"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.NonPortableCast``2(System.Span{``0})">
<param name="source"></param>
<typeparam name="TFrom"></typeparam>
<typeparam name="TTo"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="first"></param>
<param name="second"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="first"></param>
<param name="second"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="first"></param>
<param name="second"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="first"></param>
<param name="second"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="T:System.ReadOnlySpan`1">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[])">
<param name="array"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(System.Void*,System.Int32)">
<param name="pointer"></param>
<param name="length"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32)">
<param name="array"></param>
<param name="start"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32,System.Int32)">
<param name="array"></param>
<param name="start"></param>
<param name="length"></param>
</member>
<member name="M:System.ReadOnlySpan`1.CopyTo(System.Span{`0})">
<param name="destination"></param>
</member>
<member name="M:System.ReadOnlySpan`1.DangerousCreate(System.Object,`0@,System.Int32)">
<param name="obj"></param>
<param name="objectData"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.DangerousGetPinnableReference">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Empty">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Equals(System.Object)">
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.GetHashCode">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.IsEmpty">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Item(System.Int32)">
<param name="index"></param>
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Length">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Equality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Implicit(System.ArraySegment{T})~System.ReadOnlySpan{T}">
<param name="arraySegment"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Implicit(T[])~System.ReadOnlySpan{T}">
<param name="array"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Inequality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32)">
<param name="start"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32,System.Int32)">
<param name="start"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.ToArray">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.TryCopyTo(System.Span{`0})">
<param name="destination"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,200 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Runtime.CompilerServices.Unsafe</name>
</assembly>
<members>
<member name="T:System.Runtime.CompilerServices.Unsafe">
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
<summary>Adds an element offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="elementOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
<summary>Adds a byte offset to the given reference.</summary>
<param name="source">The reference to add the offset to.</param>
<param name="byteOffset">The offset to add.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
<summary>Determines whether the specified references point to the same location.</summary>
<param name="left">The first reference to compare.</param>
<param name="right">The second reference to compare.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>true if <paramref name="left">left</paramref> and <paramref name="right">right</paramref> point to the same location; otherwise, false.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
<summary>Casts the given object to the specified type.</summary>
<param name="o">The object to cast.</param>
<typeparam name="T">The type which the object will be cast to.</typeparam>
<returns>The original object, casted to the given type.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</summary>
<param name="source">The reference to reinterpret.</param>
<typeparam name="TFrom">The type of reference to reinterpret..</typeparam>
<typeparam name="TTo">The desired type of the reference.</typeparam>
<returns>A reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
<summary>Returns a pointer to the given by-ref parameter.</summary>
<param name="value">The object whose pointer is obtained.</param>
<typeparam name="T">The type of object.</typeparam>
<returns>A pointer to the given value.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T">T</typeparamref>.</summary>
<param name="source">The location of the value to reference.</param>
<typeparam name="T">The type of the interpreted location.</typeparam>
<returns>A reference to a value of type <typeparamref name="T">T</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
<summary>Determines the byte offset from origin to target from the given references.</summary>
<param name="origin">The reference to origin.</param>
<param name="target">The reference to target.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>Byte offset from origin to target i.e. <paramref name="target">target</paramref> - <paramref name="origin">origin</paramref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to copy to.</param>
<param name="source">A reference to the value to copy.</param>
<typeparam name="T">The type of value to copy.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to copy to.</param>
<param name="source">A pointer to the value to copy.</param>
<typeparam name="T">The type of value to copy.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
<summary>Copies bytes from the source address to the destination address.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
<summary>Copies bytes from the source address to the destination address.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
<summary>Copies bytes from the source address to the destination address
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
<summary>Copies bytes from the source address to the destination address
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The destination address to copy to.</param>
<param name="source">The source address to copy from.</param>
<param name="byteCount">The number of bytes to copy.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value
without assuming architecture dependent alignment of the address.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
<summary>Initializes a block of memory at the given location with a given initial value
without assuming architecture dependent alignment of the address.</summary>
<param name="startAddress">The address of the start of the memory block to initialize.</param>
<param name="value">The value to initialize the block to.</param>
<param name="byteCount">The number of bytes to initialize.</param>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="source">The location to read from.</param>
<typeparam name="T">The type to read.</typeparam>
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
<summary>Returns the size of an object of the given type parameter.</summary>
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
<returns>The size of an object of type <typeparamref name="T">T</typeparamref>.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
<summary>Subtracts an element offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="elementOffset">The offset to subtract.</param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
<summary>Subtracts a byte offset from the given reference.</summary>
<param name="source">The reference to subtract the offset from.</param>
<param name="byteOffset"></param>
<typeparam name="T">The type of reference.</typeparam>
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
without assuming architecture dependent alignment of the addresses.</summary>
<param name="destination">The location to write to.</param>
<param name="value">The value to write.</param>
<typeparam name="T">The type of value to write.</typeparam>
</member>
</members>
</doc>

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

Some files were not shown because too many files have changed in this diff Show More