Index: pjproject/main/pjlib/include/pj++/types.hpp
===================================================================
--- pjproject/main/pjlib/include/pj++/types.hpp	(revision 29)
+++ pjproject/main/pjlib/include/pj++/types.hpp	(revision 36)
@@ -7,28 +7,106 @@
 #include <pj/types.h>
 
-class PJ_Pool;
-class PJ_Socket;
+class Pj_Pool;
+class Pj_Socket ;
+class Pj_Lock;
 
 
-class PJ_Time_Val : public pj_time_val
+//
+// PJLIB initializer.
+//
+class Pjlib
 {
 public:
-    PJ_Time_Val() {}
-    PJ_Time_Val(const PJ_Time_Val &rhs) { sec=rhs.sec; msec=rhs.msec; }
-    explicit PJ_Time_Val(const pj_time_val &tv) { sec = tv.sec; msec = tv.msec; }
+    Pjlib()
+    {
+        pj_init();
+    }
+};
 
-    long get_sec()  const    { return sec; }
-    long get_msec() const    { return msec; }
-    void set_sec (long s)    { sec = s; }
-    void set_msec(long ms)   { msec = ms; normalize(); }
-    long to_msec() const { return PJ_TIME_VAL_MSEC((*this)); }
+//
+// Class Pj_Object is declared in pool.hpp
+//
 
-    bool operator == (const PJ_Time_Val &rhs) const { return PJ_TIME_VAL_EQ((*this), rhs);  }
-    bool operator >  (const PJ_Time_Val &rhs) const { return PJ_TIME_VAL_GT((*this), rhs);  }
-    bool operator >= (const PJ_Time_Val &rhs) const { return PJ_TIME_VAL_GTE((*this), rhs); }
-    bool operator <  (const PJ_Time_Val &rhs) const { return PJ_TIME_VAL_LT((*this), rhs);  }
-    bool operator <= (const PJ_Time_Val &rhs) const { return PJ_TIME_VAL_LTE((*this), rhs); }
+//
+// Time value wrapper.
+//
+class Pj_Time_Val : public pj_time_val
+{
+public:
+    Pj_Time_Val()
+    {
+    }
 
-    PJ_Time_Val & operator = (const PJ_Time_Val &rhs) {
+    Pj_Time_Val(long init_sec, long init_msec)
+    {
+        sec = init_sec;
+        msec = init_msec;
+    }
+
+    Pj_Time_Val(const Pj_Time_Val &rhs) 
+    { 
+        sec=rhs.sec; 
+        msec=rhs.msec; 
+    }
+
+    explicit Pj_Time_Val(const pj_time_val &tv) 
+    { 
+        sec = tv.sec; 
+        msec = tv.msec; 
+    }
+
+    long get_sec()  const    
+    { 
+        return sec; 
+    }
+
+    long get_msec() const    
+    { 
+        return msec; 
+    }
+
+    void set_sec (long s)    
+    { 
+        sec = s; 
+    }
+
+    void set_msec(long ms)   
+    { 
+        msec = ms; 
+        normalize(); 
+    }
+
+    long to_msec() const 
+    { 
+        return PJ_TIME_VAL_MSEC((*this)); 
+    }
+
+    bool operator == (const Pj_Time_Val &rhs) const 
+    { 
+        return PJ_TIME_VAL_EQ((*this), rhs);  
+    }
+
+    bool operator >  (const Pj_Time_Val &rhs) const 
+    { 
+        return PJ_TIME_VAL_GT((*this), rhs);  
+    }
+
+    bool operator >= (const Pj_Time_Val &rhs) const 
+    { 
+        return PJ_TIME_VAL_GTE((*this), rhs); 
+    }
+
+    bool operator <  (const Pj_Time_Val &rhs) const 
+    { 
+        return PJ_TIME_VAL_LT((*this), rhs);  
+    }
+
+    bool operator <= (const Pj_Time_Val &rhs) const 
+    { 
+        return PJ_TIME_VAL_LTE((*this), rhs); 
+    }
+
+    Pj_Time_Val & operator = (const Pj_Time_Val &rhs) 
+    {
 	sec = rhs.sec;
 	msec = rhs.msec;
@@ -36,10 +114,12 @@
     }
  
-    PJ_Time_Val & operator += (const PJ_Time_Val &rhs) {
+    Pj_Time_Val & operator += (const Pj_Time_Val &rhs) 
+    {
 	PJ_TIME_VAL_ADD((*this), rhs);
 	return *this;
     }
 
-    PJ_Time_Val & operator -= (const PJ_Time_Val &rhs) {
+    Pj_Time_Val & operator -= (const Pj_Time_Val &rhs) 
+    {
 	PJ_TIME_VAL_SUB((*this), rhs);
 	return *this;
@@ -47,13 +127,16 @@
 
     /* Must include os.hpp to use these, otherwise unresolved in linking */
-    pj_status_t	   gettimeofday();
-    pj_parsed_time decode();
-    pj_status_t    encode(const pj_parsed_time *pt);
-    pj_status_t    to_gmt();
-    pj_status_t    to_local();
+    inline pj_status_t	   gettimeofday();
+    inline pj_parsed_time  decode();
+    inline pj_status_t     encode(const pj_parsed_time *pt);
+    inline pj_status_t     to_gmt();
+    inline pj_status_t     to_local();
 
 
 private:
-    void normalize() { pj_time_val_normalize(this); }
+    void normalize() 
+    { 
+        pj_time_val_normalize(this); 
+    }
 
 };
