...
Tawesoft Logo

Source file src/tawesoft.co.uk/go/loader/doc.go

Documentation: src/tawesoft.co.uk/go/loader/doc.go

     1  // tawesoft.co.uk/go/loader
     2  // 
     3  // Copyright © 2021 Tawesoft Ltd <open-source@tawesoft.co.uk>
     4  // Copyright © 2021 Ben Golightly <ben@tawesoft.co.uk>
     5  // 
     6  // Permission is hereby granted, free of charge, to any person obtaining a copy
     7  // of this software and associated documentation files (the "Software"), to deal
     8  // in the Software without restriction,  including without limitation the rights
     9  // to use,  copy, modify,  merge,  publish, distribute, sublicense,  and/or sell
    10  // copies  of  the  Software,  and  to  permit persons  to whom  the Software is
    11  // furnished to do so, subject to the following conditions:
    12  // 
    13  // The above copyright notice and this permission notice shall be included in all
    14  // copies or substantial portions of the Software.
    15  // 
    16  // THE SOFTWARE IS PROVIDED  "AS IS",  WITHOUT WARRANTY OF ANY KIND,  EXPRESS OR
    17  // IMPLIED,  INCLUDING  BUT  NOT LIMITED TO THE WARRANTIES  OF  MERCHANTABILITY,
    18  // FITNESS FOR A PARTICULAR PURPOSE  AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    19  // AUTHORS  OR COPYRIGHT HOLDERS  BE LIABLE  FOR ANY  CLAIM,  DAMAGES  OR  OTHER
    20  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    21  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    22  // SOFTWARE.
    23  
    24  // Package loader implements the ability to define a graph of tasks and
    25  // dependencies, classes of synchronous and concurrent workers, and limiting
    26  // strategies, and solve the graph incrementally or totally.
    27  // 
    28  // For example, this could be used to implement a loading screen for a computer
    29  // game with a progress bar that updates in real time, with images being decoded
    30  // concurrently with files being loaded from disk, and synchronised with the main
    31  // thread for safe OpenGL operations such as creating texture objects on the GPU.
    32  // 
    33  // While this package is generally suitable for use in real world applications,
    34  // we are waiting to get some experience with how it works for us in an internal
    35  // application before polishing or committing to a stable API.
    36  // 
    37  // TODO: doesn't yet free temporary results
    38  // 
    39  // TODO: refactor the load loop to always send/receive at the same time
    40  // 
    41  // TODO: clean up generally
    42  // 
    43  // TODO: not decided about the API for Loader.Result (but loader.MustResult is ok)
    44  // 
    45  // TODO: a step to simplify the DAG to remove passthrough loader.NamedTask steps
    46  // 
    47  // Examples
    48  // 
    49  // Configure the Loader with a Strategy to limit concurrent connections per host
    50  //
    51  // https://www.tawesoft.co.uk/go/doc/loader/examples/limit-connections-per-host/
    52  //
    53  //
    54  // Package Information
    55  //
    56  // License: MIT (see LICENSE.txt)
    57  //
    58  // Stable: no
    59  //
    60  // For more information, documentation, source code, examples, support, links,
    61  // etc. please see https://www.tawesoft.co.uk/go and 
    62  // https://www.tawesoft.co.uk/go/loader
    63  package loader // import "tawesoft.co.uk/go/loader"
    64  
    65  // Code generated by internal. DO NOT EDIT.
    66  // Instead, edit DESC.txt and run mkdocs.sh.

View as plain text