GPS and GSM interface for remote TCp server

Is there is again required decode function to decode the NMEA data?

I'm not sure that I understand your question. The decode() function has to be given each character read from the GPS. It stores the characters in an array, and determines if any given character is the one that says "this is the end of a GPS sentence". When it gets one that is, it parses the stored data, and returns true, indicating that you can now use the parsed data. If the character is not the one that says that a sentence is complete, decode() returns false, meaning that you should not be using the parsed data.