ServerConsole.cs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /*
  2. * Copyright (c) OpenSim project, http://sim.opensecondlife.org/
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions are met:
  6. * * Redistributions of source code must retain the above copyright
  7. * notice, this list of conditions and the following disclaimer.
  8. * * Redistributions in binary form must reproduce the above copyright
  9. * notice, this list of conditions and the following disclaimer in the
  10. * documentation and/or other materials provided with the distribution.
  11. * * Neither the name of the <organization> nor the
  12. * names of its contributors may be used to endorse or promote products
  13. * derived from this software without specific prior written permission.
  14. *
  15. * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
  16. * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  17. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  18. * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
  19. * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  20. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  21. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  22. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  23. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  24. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  25. *
  26. */
  27. using System;
  28. namespace ServerConsole
  29. {
  30. public class MainConsole {
  31. private static ConsoleBase instance;
  32. public static ConsoleBase Instance
  33. {
  34. get
  35. {
  36. return instance;
  37. }
  38. set
  39. {
  40. instance = value;
  41. }
  42. }
  43. public MainConsole()
  44. {
  45. }
  46. }
  47. public abstract class conscmd_callback {
  48. public abstract void RunCmd(string cmd, string[] cmdparams);
  49. public abstract void Show(string ShowWhat);
  50. }
  51. public abstract class ConsoleBase
  52. {
  53. public enum ConsoleType {
  54. Local, // Use stdio
  55. TCP, // Use TCP/telnet
  56. SimChat // Use in-world chat (for gods)
  57. }
  58. public abstract void Close();
  59. // You know what ReadLine() and WriteLine() do, right? And Read() and Write()? Right, you do actually know C#, right? Are you actually a programmer? Do you know english? Do you find my sense of humour in comments irritating? Good, glad you're still here
  60. public abstract void WriteLine(string Line) ;
  61. public abstract string ReadLine();
  62. public abstract int Read() ;
  63. public abstract void Write(string Line) ;
  64. public abstract string PasswdPrompt(string prompt);
  65. // Displays a command prompt and waits for the user to enter a string, then returns that string
  66. public abstract string CmdPrompt(string prompt) ;
  67. // Displays a command prompt and returns a default value if the user simply presses enter
  68. public abstract string CmdPrompt(string prompt, string defaultresponse);
  69. // Displays a command prompt and returns a default value, user may only enter 1 of 2 options
  70. public abstract string CmdPrompt(string prompt, string defaultresponse, string OptionA, string OptionB) ;
  71. // Runs a command with a number of parameters
  72. public abstract Object RunCmd(string Cmd, string[] cmdparams) ;
  73. // Shows data about something
  74. public abstract void ShowCommands(string ShowWhat) ;
  75. // Displays a prompt to the user and then runs the command they entered
  76. public abstract void MainConsolePrompt() ;
  77. }
  78. }