Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue 103 External API #1667

Merged
merged 6 commits into from
Jun 9, 2016
Merged

Commits on Jun 7, 2016

  1. Create new AssemblyWalkAttribute

    AssemblyWalkAttribute.cs
    * New class to manage walking the loaded assemblies looking for classes, interfaces, or attributes
    * Decorate manager classes with this attribute to define how the class should register other types
    
    Bootstrapper.cs
    * Add call to AssemblyWalkAttribute.Walk from the Start method.
    
    BoundVariable.cs
    * Clear the cache if you set the bound variable
    
    Opcode.cs
    * Switch casting method to avoid casting error.
    
    SafeFunctionBase.cs, FunctionBase.cs, FunctionManager.cs,
    SafeBindingBase.cs, Binding.cs, BindingManager.cs, kOSProcessor.cs
    * Create new classes in kOS.Safe to serve as safe base classes.
    * Move as much logic into kOS.Safe as possible.
    
    kOS.Safe.csproj, kOS.csproj
    * Reference new classes and remove old references.
    hvacengi committed Jun 7, 2016
    Configuration menu
    Copy the full SHA
    10ca08a View commit details
    Browse the repository at this point in the history
  2. Create new AddonManager and kOSAddonAttribute

    Convert existing Addons to the new attribute system
    
    AddonManager.cs
    * New manager class for all addons.
    * Receives the register calls of AssemblyWalkAttribute
    * Contains a static list of all kOSAddonAttributes and associated types
    * Instantiated by the processor as a member of kOS.SharedObjects
    
    kOSAddonAttribute.cs
    * New attribute class for decorating kOS Addon classes.
    * Important to remember that the class must inherit from kOS.Suffixed.Addon as well (defined by AddonManager)
    
    kOS.csproj
    * Add references to new classes.
    
    AddonList.cs
    * Rework AddonList to create suffixes based on Addons in AddonManager
    * Add new suffixes for HASADDON and AVAILABLE to allow scripts to check if the addon is installed and if it is available
    
    kOSProcessor.cs, SharedObjects.cs
    * Add references to the new AddonManager
    hvacengi committed Jun 7, 2016
    Configuration menu
    Copy the full SHA
    65af8ee View commit details
    Browse the repository at this point in the history
  3. Fix telnet setting exceptions

    TelnetMainServer.cs
    * use `GetValue` instead of the string index to return permission
    setting values in order to stop exceptions when loading and the key is
    not present.
    hvacengi committed Jun 7, 2016
    Configuration menu
    Copy the full SHA
    457f0d7 View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2016

  1. Port KOSNomenclature to use AssemblyWalkAttribute

    AssemblyWalkAttribute.cs
    * Fix ToString to be more useful by identifying its class, and then the
    criteria.
    * Add a could comments
    * Fix attempting to force Interface/Inherited conditions to accept an
    attribute condition as well.
    * Add more detail to error messages.
    * Remove logging output for every class that does not satisfy
    Interface/Inheritance conditions.
    
    KOSNomenclature.cs
    * Implement AssemblyWalkAttribute.
    * Move logic from assembly based methods into stand alone single type
    methods.
    
    Bootstrapper.cs
    * Remove call to KOSNomenclature PopulateMapping
    hvacengi committed Jun 8, 2016
    Configuration menu
    Copy the full SHA
    9e499f5 View commit details
    Browse the repository at this point in the history
  2. Add Readme

    Addon Readme.md
    * Add some documentation for how to implement a new Addon.
    hvacengi committed Jun 8, 2016
    Configuration menu
    Copy the full SHA
    849f332 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2016

  1. Review changes

    Addon Readme.md
    * Clarify assembly/project separation.
    * Reference the parameter of the KOSNomenclature attribute
    
    AssemblyWalkAttribute.cs
    * Log assembly location when it cannot be loaded
    * Create a couple of constant string format fields.
    * Remove uneeded zero parameter check in CheckMethodParameters
    
    Binding.cs
    * Remove Update method that was hiding the inherited Update method.
    hvacengi committed Jun 9, 2016
    Configuration menu
    Copy the full SHA
    c611b04 View commit details
    Browse the repository at this point in the history