Notes on adding encryption to Octane, and moving to a more general Tranformer based approach.
mouser, 9/1/03


The main octane class that currently does work is OctaneCompressor.
I propose we add another layer of abstraction between OctaneCompressor and OctaneClass, which handles most of the compressor responsibility, but is more general purpose and would cover activities with the same API but with alternative purposes, like encryption and base64 encoding.

The proposed class would be called OctaneTransformer, and OctaneCompressor could be subclassed from that (though the OctaneCompressor class may actually not implement any new methods).

The API methods for the OctaneTransformer would have to be renamed from Compress and Decompress to names which are more general (for example, Transform and UnTransform?).


It might be helpful for all Transformers to return an rtti type info string like "compression" , "crypto" , "encoding", to help an observer group them.


We also need to set up an easy mechanism for <b>chaining</b> transformers.

I think it might be best to implement chaining not with any special feature built in to handle it, but rather by creating a ChainedTransformer class, which can hold a linked list of other instantiated OctaneTrasnsformers.

One thing we might want to do is implement, in a similar way that we implement the generic parameter system, a simple function system, where you can send an arbitrary text command to a transformer, rather than simply setting a variable (like "ADD MyCryptoTransformer").

