Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > ffa1e6f5ad04360808fe8840fe3ba036 > files > 48

vrq-devel-1.0.88-1.fc14.i686.rpm

/*-----------------------------------------------------------------------------
 * 	Copyright (c) 1997-2009 Mark Hummel DBA Raquette Software.
 *		All rights reserved
 *
 *    This file contains source code written by Raquette Software, 
 *    68 Stewart Street, Franklin MA 02038. It may not be used without 
 *    express written permission. The expression of the information 
 *    contained herein is protected under federal copyright laws and 
 *    all copying without permission is prohibited and may be subject 
 *    to criminal penalties. The Author assumes no responsibility for 
 *    errors, omissions, or damages caused by the use of these programs 
 *    or from use of the information contained herein.
 *
 *-----------------------------------------------------------------------------
 */
/******************************************************************************
 *
 *
 *	   example1.h
 *	   - example plugin
 *		- 
 *
 ******************************************************************************
 */

#ifndef EXAMPLE1_H 
#define EXAMPLE1_H 

/*
 * include vrq headers
 */
#include "plugin.h"
#include <map>

/*
 * Plugin tools implement a subclass of CBackend.
 */
class CExample1 : public CBackend 
{
private:
    Message* mVIDNR;	// error message object
    int listNets;	// non-zero if +example-list-nets has
			// been specified
    int listRegs;	// non-zero if +example-list-regs has 
			// been specified
public:
    /*
     * data structure used to record variable info
     */
    struct DeclRecord {
	CDecl*   decl;	    // declaration object
	CModule* module;    // containing module
	int      refCount;  // number of references to declaration
	int      declared;  // variable has been explicitly declared
    };
private:
	map<CDecl*,DeclRecord> decl2Record; // map of variable to 
					    // info data structure.
public:
	/*
 	 * Methods
 	 */
	CExample1( void );
	virtual char* GetToolName( void );
	virtual char* GetToolDescription( void );
        virtual int AcceptAllPlusArgs( void );
        virtual int HideTool();
        virtual int IgnoreVrqComments();
	virtual int ResolveModules();
	virtual int ResolveInstance( CModule*, CInstance* );
	virtual void Activate();
	virtual void Process( list<CElement>& inputList,
			      list<CElement>& outputList );
};

#endif // EXAMPLE1_H