OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libstdc++-v3/] [docs/] [html/] [ext/] [pb_assoc/] [sample_update_policy.hpp] - Rev 20

Compare with Previous | Blame | View Log

/** 
* @file sample_update_policy.hpp
* Contains a sample policy for list update containers.
* 
* Copyright Ami Tavory, IBM-HRL, 2004.
* 
* Permission to use, copy, modify, sell, and distribute this software
*	is hereby granted without fee, provided that the above copyright notice
*	appears in all copies, and that both that copyright notice and this
*	permission notice appear in supporting documentation.
*
* None of the above authors, nor IBM Haifa Research Laboratories, make any
*	representation about the suitability of this software for any
*	purpose. It is provided "as is" without express or implied warranty.
**/
 
 
#ifndef SAMPLE_UPDATE_POLICY_HPP
#define SAMPLE_UPDATE_POLICY_HPP
 
 
/**
* <class
*	description = "A sample list-update policy."
*  comment = "This class serves to show the interface a list update functor
*	needs to support.">
**/
class sample_update_policy
{
/**
*******************************************************************************
*******************************************************************************
* <public_methods_group>
**/
public:
	/**
	***************************************************************************
	***************************************************************************
	** <group description = "Constructors, destructor, and related.">
	**/
 
	/*
	* <fn description = "Default constructor."
	*	comment = "Must be default constructible.">
	**/
		sample_update_policy
		();
	/** </fn> **/
 
	/*
	* <fn description = "Copy constructor."
	*	comment = "Must be copy constructible.">
	**/
		sample_update_policy
		(const sample_update_policy &r_other);
	/** </fn> **/
 
	/*
	* <fn description = "Swaps content."
	*	comment = "Must be swappable (if there is such a word).">
	**/
	inline void
		swap
		(sample_update_policy &r_other);
	/** </fn> **/
 
	/*
	***************************************************************************
	***************************************************************************
	* </group>
	**/
 
/**
*******************************************************************************
*******************************************************************************
* </public_methods_group>
**/
 
 
/**
*******************************************************************************
*******************************************************************************
* <protected_types_group>
**/
protected:
 
	/**
	***************************************************************************
	***************************************************************************
	** <group description = "Metadata definitions.">
	**/
 
	/**
	* <tdef description = "Metadata on which this functor operates."
	*	comment = "The class must declare the metadata type on which it
	*		operates; the list-update based containers will append to 
	*		each node an object of this type.">
	**/
	typedef
		some_metadata_type
		metadata_type;
	/** </tdef> **/
 
 
	/*
	***************************************************************************
	***************************************************************************
	* </group>
	**/
 
/**
*******************************************************************************
*******************************************************************************
* </protected_types_group>
**/
 
 
/**
*******************************************************************************
*******************************************************************************
* <protected_methods_group>
**/
protected:
	/**
	***************************************************************************
	***************************************************************************
	** <group description = "Metadata operations.">
	**/
 
	/*
	* <fn description = "Creates a metadata object."
	*	comment = "A list-update based container object  will call this
	*		method to create a metadata type when a node is created.">
	**/
	metadata_type
		operator()
		() const;
	/** </fn> **/
 
	/*
	* <fn description = "Decides whether a metadata object should be 
	*	moved to the front of the list. A list-update based containers object 
	*	will call this
	*	method to decide whether to move a node to the front of 
	*	the list. The method shoule return true if the node should
	*	be moved to the front of the list."
	*	comment = "@@sample_update_policy_metadata_reference">
	**/
	bool 
		operator()
		(metadata_reference r_data) const;
	/** </fn> **/
 
	/*
	***************************************************************************
	***************************************************************************
	* </group>
	**/
 
/**
*******************************************************************************
*******************************************************************************
* </protected_methods_group>
**/
};
/**
* </class>
**/
 
 
#endif // #ifndef SAMPLE_UPDATE_POLICY_HPP
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.