I don't really have my head around the Boost IO filter architecture yet, but I have managed to get a very basic filter working. I'm having some trouble with end-of-input issues. I think what I'm trying to do comes up frequently, so hopefully this will be a straightforward answer...
What I'm trying to do is write a filter that takes in input one character at a time (for simplicity -- for now), and outputs encrypted characters. The block size is 4 bytes, so every 4 characters I can encrypt, and then spit out the result. If I hit the end of input, then I want to pad the plaintext, encrypt and output the final block. My trouble is knowing when the end-of-input has arrived. Is there a well defined way that my output filter is notified of a close event or something similar? I did see close functions defined in the example filters, but mine isn't getting called. I tried to look at the base64 encode/decode headers (which would have to deal with the same issue) but I couldn't really follow it.
Any help is appreciated.
Thanks
-Steve