Revision: 8379
          http://playerstage.svn.sourceforge.net/playerstage/?rev=8379&view=rev
Author:   rtv
Date:     2009-11-08 20:32:58 +0000 (Sun, 08 Nov 2009)

Log Message:
-----------
re-added basic property set/get for world and models. Removed unused mutexes

Modified Paths:
--------------
    code/stage/trunk/CMakeLists.txt
    code/stage/trunk/RELEASE.txt
    code/stage/trunk/docsrc/stage.dox
    code/stage/trunk/libstage/ancestor.cc
    code/stage/trunk/libstage/model.cc
    code/stage/trunk/libstage/stage.hh

Modified: code/stage/trunk/CMakeLists.txt
===================================================================
--- code/stage/trunk/CMakeLists.txt     2009-11-06 19:32:26 UTC (rev 8378)
+++ code/stage/trunk/CMakeLists.txt     2009-11-08 20:32:58 UTC (rev 8379)
@@ -2,7 +2,7 @@
 
 SET( V_MAJOR 3 )
 SET( V_MINOR 2 )
-SET( V_BUGFIX 1 )
+SET( V_BUGFIX 2 )
 
 SET( VERSION ${V_MAJOR}.${V_MINOR}.${V_BUGFIX} )
 SET( APIVERSION ${V_MAJOR}.${V_MINOR} )

Modified: code/stage/trunk/RELEASE.txt
===================================================================
--- code/stage/trunk/RELEASE.txt        2009-11-06 19:32:26 UTC (rev 8378)
+++ code/stage/trunk/RELEASE.txt        2009-11-08 20:32:58 UTC (rev 8379)
@@ -1,3 +1,20 @@
+Version 3.2.2
+-------------
+
+Bugfix, performance and cleanup release. This is the fastest Stage
+ever for most use cases. 
+
+Externally visible changes
+
+ - removed property database from models. This will break user code
+ that depends on it. The rationale for removing it is that it is not
+ useful to libstage users, and only to libstageplugin users who used
+ it for Player-based IPC. It should be provided by a Player
+ driver. Removing this little-used code is a useful clean up.
+
+Richard Vaughan (rtv) vaug...@sfu.ca - 2009.10.28
+
+
 Version 3.2.1
 -------------
 

Modified: code/stage/trunk/docsrc/stage.dox
===================================================================
--- code/stage/trunk/docsrc/stage.dox   2009-11-06 19:32:26 UTC (rev 8378)
+++ code/stage/trunk/docsrc/stage.dox   2009-11-08 20:32:58 UTC (rev 8379)
@@ -23,7 +23,7 @@
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER         = 3.2.1
+PROJECT_NUMBER         = 3.2.2
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put. 

Modified: code/stage/trunk/libstage/ancestor.cc
===================================================================
--- code/stage/trunk/libstage/ancestor.cc       2009-11-06 19:32:26 UTC (rev 
8378)
+++ code/stage/trunk/libstage/ancestor.cc       2009-11-08 20:32:58 UTC (rev 
8379)
@@ -5,13 +5,14 @@
 
 
 Ancestor::Ancestor() :
+  //access_mutex(),
+  child_type_counts(),
   children(),
   debug( false ),
-  token(),
-  access_mutex(),
-  child_type_counts()
+  props(),
+  token()
 {
-  pthread_mutex_init( &access_mutex, NULL );
+  //pthread_mutex_init( &access_mutex, NULL );
 }
 
 Ancestor::~Ancestor()

Modified: code/stage/trunk/libstage/model.cc
===================================================================
--- code/stage/trunk/libstage/model.cc  2009-11-06 19:32:26 UTC (rev 8378)
+++ code/stage/trunk/libstage/model.cc  2009-11-08 20:32:58 UTC (rev 8379)
@@ -252,7 +252,7 @@
                                  Model* parent,
                                  const std::string& type ) :
   Ancestor(),   
-  access_mutex(),
+  //access_mutex(),
   alwayson(false),
   blockgroup(),
   blocks_dl(0),
@@ -277,7 +277,6 @@
     pose(),
         power_pack( NULL ),
         pps_charging(),
-    props(),
         rastervis(),
     rebuild_displaylist(true),
     say_string(),

Modified: code/stage/trunk/libstage/stage.hh
===================================================================
--- code/stage/trunk/libstage/stage.hh  2009-11-06 19:32:26 UTC (rev 8378)
+++ code/stage/trunk/libstage/stage.hh  2009-11-08 20:32:58 UTC (rev 8379)
@@ -1,3 +1,4 @@
+
 #ifndef STG_H
 #define STG_H
 /*
@@ -639,42 +640,49 @@
     friend class Canvas; // allow Canvas access to our private members
         
   protected:
+
+    /** array contains the number of each type of child model */
+        std::map<std::string,unsigned int> child_type_counts;
+
         ModelPtrVec children;
+
     bool debug;
+
+        /** A key-value database for users to associate arbitrary things with 
this object. */
+        std::map<std::string,void*> props;
+
         std::string token;
-        pthread_mutex_t access_mutex; ///< Used by Lock() and Unlock() to 
prevent parallel access to this model
 
         void Load( Worldfile* wf, int section );
-        void Save( Worldfile* wf, int section );
+        void Save( Worldfile* wf, int section );        
+                        
+  public:      
+    Ancestor();
+    virtual ~Ancestor();
         
-  public:      
-        /* The maximum length of a Stage model identifier string */
-        //static const uint32_t TOKEN_MAX = 64;
-                
     /** get the children of the this element */
         ModelPtrVec& GetChildren(){ return children;}
     
     /** recursively call func( model, arg ) for each descendant */
     void ForEachDescendant( stg_model_callback_t func, void* arg );
-               
-    /** array contains the number of each type of child model */
-        std::map<std::string,unsigned int> child_type_counts;
         
-    Ancestor();
-    virtual ~Ancestor();
-        
     virtual void AddChild( Model* mod );
     virtual void RemoveChild( Model* mod );
     virtual Pose GetGlobalPose();
         
-    const char* Token()
-    { return token.c_str(); }
+    const char* Token(){ return token.c_str(); }
         
-    void SetToken( const std::string& str )
-    { token = str; } 
-
-        void Lock(){ pthread_mutex_lock( &access_mutex ); }    
-        void Unlock(){ pthread_mutex_unlock( &access_mutex ); }
+    void SetToken( const std::string& str ){ token = str; } 
+        
+        /** A key-value database for users to associate arbitrary things with 
this model. */
+        void SetProperty( std::string& key, void* value ){ props[ key ] = 
value; }
+        
+        /** A key-value database for users to associate arbitrary things with 
this model. */
+        void* GetProperty( std::string& key )
+        {
+               std::map<std::string,void*>::iterator it = props.find( key );   
        
+               return( it == props.end() ? NULL : it->second );
+        }
   };
 
   /** raytrace sample
@@ -1597,7 +1605,6 @@
         const std::vector<Option*>& getOptions() const { return drawOptions; }
         
   protected:
-        pthread_mutex_t access_mutex;
 
         /** If true, the model always has at least one subscription, so
                  always runs. Defaults to false. */
@@ -1743,11 +1750,6 @@
                  initially NULL. */
         std::list<PowerPack*> pps_charging;
                
-               /** Props map can contain arbitrary named data items. Can be 
used
-                               by derived model types to store properties, and 
for user code
-                               to associate arbitrary items with a model. */
-        std::map<std::string,const void*> props;
-
         /** Visualize the most recent rasterization operation performed by 
this model */
         class RasterVis : public Visualizer
         {


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to