Main Page | Modules | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | Related Pages

guidovisitor.h

00001 /*
00002 
00003   Copyright (C) 2003  Grame
00004 
00005   This library is free software; you can redistribute it and/or
00006   modify it under the terms of the GNU Lesser General Public
00007   License as published by the Free Software Foundation; either
00008   version 2.1 of the License, or (at your option) any later version.
00009 
00010   This library is distributed in the hope that it will be useful,
00011   but WITHOUT ANY WARRANTY; without even the implied warranty of
00012   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013   Lesser General Public License for more details.
00014 
00015   You should have received a copy of the GNU Lesser General Public
00016   License along with this library; if not, write to the Free Software
00017   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 
00019   Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France
00020   grame@grame.fr
00021 
00022 */
00023 
00024 #ifndef __guidovisitor__
00025 #define __guidovisitor__
00026 
00027 #include "exports.h"
00028 #include "smartpointer.h"
00029 
00030 #include <string>
00031 using namespace std;
00032 
00033 typedef SMARTP<class guidoelement>  Sguidoelement;
00034 typedef SMARTP<class guidonote>     Sguidonote;
00035 typedef SMARTP<class guidoseq>      Sguidoseq;
00036 typedef SMARTP<class guidochord>    Sguidochord;
00037 typedef SMARTP<class guidotag>      Sguidotag;
00038 typedef SMARTP<class guidoparam>    Sguidoparam;
00039 
00048 class guidovisitor {
00049 
00050     public:
00051         guidovisitor() {}
00052         virtual ~guidovisitor() {}
00053 
00054         virtual void visite ( Sguidoelement& elt ) = 0;
00055         virtual void visite ( Sguidonote& elt ) = 0;
00056         virtual void visite ( Sguidoseq& elt ) = 0;
00057         virtual void visite ( Sguidochord& elt ) = 0;
00058         virtual void visite ( Sguidotag& elt ) = 0;
00059         virtual void visite ( Sguidoparam& elt ) = 0;
00060 };
00061 
00065 class guidovisitable {
00066     public:
00067         virtual void accept(guidovisitor& visitor) = 0;
00068 };
00072 #endif

Generated on Tue Mar 23 09:49:43 2004 for LibMusicXML by doxygen 1.3.3