/* libzz
 *
 * This program is distributed under the GNU General Public License, version 2.
 * A copy of this license is included with this source.
 *
 * Copyright 2000-2006, Toni Thomsson <toni@tonjac.org> 
*/

#ifndef zz_string_tokenizer_h
#define zz_string_tokenizer_h

#include <zz_string.h>
#include <string.h>
#include <zz_export.h>

/**
    String tokenizer parser

    @author Toni Thomsson, toni@tonjac.org  
*/
class ZZ_API CzzStringTokenizer
{
public:

    /** 
        Create parser
        @param str  String
        @param sep  Separator charachter(s)
    */
    CzzStringTokenizer( const CzzString& str, const CzzString& sep );

    
    virtual ~CzzStringTokenizer();

    /** More tokens to process? */
    bool hasMoreTokens( void );

    /** Next token */
    CzzString nextToken( void );

protected:

    /** Separator */
    CzzString m_Separators;

    /** String */
    CzzString m_String;

    /** Next token */
    CzzString m_NextToken;

private:    
    char* m_Token;
    bool m_End;
};

#endif // zz_string_tokenizer_h