I've worked two years on a PHD thesis involving all-optical signal processing (though I worked on all-optical signal regeneration, not logical gates), and one of my conclusions is that multi-level is an order of magnitude more challenging than two values.
The reason is that if you do multiple processing steps, you usually get some random fluctations, so you need to have components that fix that, i.e. fix to a certain level.
Now you have basically two options, you can encode your information in the phase or in the amplitude/power.
In the case of power levels you can use something like nonlinear loop mirrors, but they have the problem that they change the power ratio level between the states.
In the case of phase encoded signals, a you can use a saturated phase-sensitive amplifier (for example two symmetric pumps), but they require quite high powers, and you have to injection-lock the pumps to compensate phase drifts, and they still only work for two levels. There is exactly one scheme that works for multiple levels (see
http://eprints.soton.ac.uk/336325/1.hasCoversheetVersion/Thesis.pdf for a PHD thesis about it), but it turns phase noise into amplitude noise, so you need an amplitude regenator after it.
So, binary logic is plenty of challenge to get working; once that's establish, we can still think about multiple levels.