ACE Tutorial 015
Building a protocol stream


While I might be able to come up with a competitive compressor, I don't have a snowball's chance to code up encryption. I'd be better off piping the data through the standard Unix crypt command.

So, while I was lazy with Compress, I'm realistic with Crypt. I'll show you the hooks and entry points and let someone else contribute an encryptor.



// $Id$

#ifndef CRYPT_H
#define CRYPT_h

#include "Protocol_Task.h"

/* An interface (adaptor) between your favorite encryption method and
   an ACE_Stream.
*/
class Crypt : public Protocol_Task
{
public:

    typedef Protocol_Task inherited;

        // Again we have the option of multiple threads and again I
        // regret tempting folks to use it.
    Crypt( int _thr_count = 0 );

    ~Crypt(void);

protected:

        // Moving downstream will encrypt the data
     int send(ACE_Message_Block *message,
              ACE_Time_Value *timeout);

        // And moving upstream will decrypt it.
     int recv(ACE_Message_Block *message,
              ACE_Time_Value *timeout);
};

#endif // CRYPT_H


[Tutorial Index] [Continue This Tutorial]