For the filling: Heat the oil in a non-stick saucepan over a medium heat. Add the onion, and fry for 3 to 4 minutes, or until golden brown.
Meanwhile, blend the garlic cloves, and ginger with 1 tablespoon water to a smooth paste in a food processor.
Using a mortar and pestle, grind the peppercorns, cloves, cumin, cinnamon, and dried chiles to a fine powder. Add the ground spices to the pan, and stir well to coat the onion in the spices. Reduce the heat to a low heat, and fry the spices for 20 to 30 seconds. Add the ginger and garlic puree, stir well, and cook for another 2 to 3 minutes, or until the raw smell of garlic has disappeared.
Add the chopped tomatoes and a splash of water, stir well and bring the mixture to a simmer. Simmer for 12 to 15 minutes, stirring occasionally, or until the tomatoes have reduced to a pulp. You can use a potato masher to break the tomatoes down during cooking.
Add the sugar and the white wine vinegar, and cook for another 2 to 3 minutes.
Add the prawns and cook for another 1 to 2 minutes, or until the prawns have turned pink, and have started to curl up. Remove the pan from the heat, and set aside to cool.
For the batter: Preheat the oven to 400 degrees F. Grease an 8-inch cake pan with butter.
In a mixing bowl, cream together the sugar and butter until pale and fluffy. Gradually add the eggs and egg yolk, beating well until each addition has been fully incorporated into the mixture before adding more. Add the salt, semolina, flour, baking powder, milk, and coconut, and mix until the mixture is well combined, and is of a dropping consistency.
Spoon half of the batter mixture into the greased cake tin. Spoon the filling mixture on top of the batter and spread it evenly over the batter. Pour over the remaining batter mixture. Transfer the pan to the oven, and bake for 55 to 60 minutes, or until a skewer comes out clean when inserted into the center of the prawn cake.
To serve the dish, turn out the prawn cake onto a plate. Cut the prawn cake into ten slices and place each slice onto a serving plate. Place a portion of lightly dressed salad greens alongside.