[PD-cvs] externals/grill/flext/source flmap.h,NONE,1.1 flclass.h,1.43,1.44 flext.h,1.19,1.20 flsupport.h,1.67,1.68
Thomas Grill
xovo at users.sourceforge.net
Sat Apr 24 00:14:17 CEST 2004
Update of /cvsroot/pure-data/externals/grill/flext/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22965/source
Modified Files:
flclass.h flext.h flsupport.h
Added Files:
flmap.h
Log Message:
""
--- NEW FILE: flmap.h ---
/*
flext - C++ layer for Max/MSP and pd (pure data) externals
Copyright (c) 2001-2004 Thomas Grill (xovo at gmx.net)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.
*/
/*! \file flmap.h
\brief special map class for all 32-bit key/value-pairs
*/
#ifndef __FLMAP_H
#define __FLMAP_H
#include <map>
/*! \defgroup FLEXT_SUPPORT Flext support classes
@{
*/
//! Base class for maps
class AnyMap:
public std::map<unsigned int,unsigned int>
{
typedef std::map<unsigned int,unsigned int> Parent;
public:
AnyMap();
~AnyMap();
iterator find(unsigned int k);
unsigned int &operator [](unsigned int k);
typedef std::pair<unsigned int,unsigned int> pair;
};
//! Specialized map class for any 32-bit key/value types
template <class K,class T>
class DataMap:
public AnyMap
{
public:
class iterator:
public AnyMap::iterator
{
public:
iterator() {}
iterator(AnyMap::iterator it): AnyMap::iterator(it) {}
inline K &key() const { return *(K *)&((*this)->first); }
inline T &data() const { return *(T *)&((*this)->second); }
};
class pair:
public AnyMap::pair
{
public:
inline K &key() const { return *(K *)&first; }
inline T &data() const { return *(T *)&second; }
};
inline iterator find(K k) { return AnyMap::find(*(unsigned int *)&k); }
inline T &operator [](K k) { return *(T *)&(AnyMap::operator [](*(unsigned int *)&k)); }
inline void erase(K k) { AnyMap::erase(*(unsigned int *)&k); }
};
//! @} // FLEXT_SUPPORT
#endif
Index: flext.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flext.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** flext.h 27 Dec 2003 03:32:55 -0000 1.19
--- flext.h 23 Apr 2004 22:14:14 -0000 1.20
***************
*** 3,7 ****
flext - C++ layer for Max/MSP and pd (pure data) externals
! Copyright (c) 2001-2003 Thomas Grill (xovo at gmx.net)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.
--- 3,7 ----
flext - C++ layer for Max/MSP and pd (pure data) externals
! Copyright (c) 2001-2004 Thomas Grill (xovo at gmx.net)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.
***************
*** 27,31 ****
//! \brief flext version string
! #define FLEXT_VERSTR "0.4.6pre"
//! @}
--- 27,31 ----
//! \brief flext version string
! #define FLEXT_VERSTR "0.4.6"
//! @}
Index: flclass.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flclass.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -C2 -d -r1.43 -r1.44
*** flclass.h 20 Apr 2004 02:33:04 -0000 1.43
--- flclass.h 23 Apr 2004 22:14:12 -0000 1.44
***************
*** 20,23 ****
--- 20,24 ----
#include "flbase.h"
#include "flsupport.h"
+ #include "flmap.h"
#ifdef _MSC_VER
Index: flsupport.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.h,v
retrieving revision 1.67
retrieving revision 1.68
diff -C2 -d -r1.67 -r1.68
*** flsupport.h 23 Apr 2004 02:32:55 -0000 1.67
--- flsupport.h 23 Apr 2004 22:14:14 -0000 1.68
***************
*** 18,22 ****
#include "flstdc.h"
#include <new>
- #include <map>
/*! \defgroup FLEXT_SUPPORT Flext support classes
--- 18,21 ----
***************
*** 1150,1197 ****
inline bool operator >=(const t_atom &a,const t_atom &b) { return FLEXT_CLASSDEF(flext)::CmpAtom(a,b) >= 0; }
-
- class AnyMap:
- public std::map<unsigned int,unsigned int>
- {
- typedef std::map<unsigned int,unsigned int> Parent;
- public:
- AnyMap();
- ~AnyMap();
- iterator find(unsigned int k);
- unsigned int &operator [](unsigned int k);
-
- typedef std::pair<unsigned int,unsigned int> pair;
- };
-
- template <class K,class T>
- class DataMap:
- public AnyMap
- {
- public:
- class iterator:
- public AnyMap::iterator
- {
- public:
- iterator() {}
- iterator(AnyMap::iterator it): AnyMap::iterator(it) {}
-
- inline K &key() const { return *(K *)&((*this)->first); }
- inline T &data() const { return *(T *)&((*this)->second); }
- };
-
- class pair:
- public AnyMap::pair
- {
- public:
- inline K &key() const { return *(K *)&first; }
- inline T &data() const { return *(T *)&second; }
- };
-
- inline iterator find(K k) { return AnyMap::find(*(unsigned int *)&k); }
- inline T &operator [](K k) { return *(T *)&(AnyMap::operator [](*(unsigned int *)&k)); }
- inline void erase(K k) { AnyMap::erase(*(unsigned int *)&k); }
- };
-
-
//! @} // FLEXT_SUPPORT
--- 1149,1152 ----
More information about the Pd-cvs
mailing list