
#pragma once

#include <string>
#include <vector>
#include <ciso646>

class Transposition
{
private:
    std::string m_Key;
    std::vector<int> m_EncodeShift;
    std::vector<int> m_DecodeShift;

    bool        m_Verbose;

    std::string m_Data;

    void swap( char* a, char* b );
    void swap( int*  a, int*  b );

public:
    Transposition();

    void setVerbose( bool flag=true );

    void        print();
    void        setKey( std::string key );
    std::string encode( std::string s );
    std::string decode( std::string s );
};
