Date: Thursday, December 22, 2005 @ 15:20:50
  Author: marc
    Path: /cvsroot/carob/carob

Modified: include/ConnectionParameters.hpp (1.10 -> 1.11)
          src/ConnectionParameters.cpp (1.8 -> 1.9)

Reworked constructor to use a functional style (const fields etc.)


----------------------------------+
 include/ConnectionParameters.hpp |   38 ++++++++++++++-------------------
 src/ConnectionParameters.cpp     |   42 ++++++++++++++++---------------------
 2 files changed, 36 insertions(+), 44 deletions(-)


Index: carob/include/ConnectionParameters.hpp
diff -u carob/include/ConnectionParameters.hpp:1.10 
carob/include/ConnectionParameters.hpp:1.11
--- carob/include/ConnectionParameters.hpp:1.10 Thu Dec 22 14:51:29 2005
+++ carob/include/ConnectionParameters.hpp      Thu Dec 22 15:20:50 2005
@@ -38,7 +38,7 @@
 /**
  * Constants for connection defaults
  */
-#define DEFAULT_PORT        (inetport_t)25322
+#define DEFAULT_PORT        ((inetport_t)25322)
 #define DEFAULT_HOST        L"localhost"
 #define DEFAULT_USER        L"user"
 #define DEFAULT_PASSWD      L""
@@ -70,51 +70,47 @@
    * Validates database name. If invalid returns false and set param char to 
the
    * first invalid character.
    */
-  bool                isValidDatabaseName(const std::wstring&, wchar_t&) const;
+  static bool         isValidDatabaseName(const std::wstring&, wchar_t&);
   /**
    * Validates host name. If invalid returns false and set param char to the
    * first invalid character.
    */
-  bool                isValidHostName(const std::wstring&, wchar_t&) const;
+  static bool         isValidHostName(const std::wstring&, wchar_t&);
 
   /** Gives the host name */
   inline std::wstring getHostName() const { return hostName; }
-  /** Sets the host name */
-  void                setHostName(const std::wstring&) throw 
(ConnectionException, UnexpectedException);
+  /** Checks the host name */
+  static
+  const std::wstring& checkHostName(const std::wstring&)
+    throw (ConnectionException, UnexpectedException);
   /** Gives the host port */
   inline inetport_t   getHostPort() const { return hostPort; }
-  /** Sets the host port */
-  inline void         setHostPort(const inetport_t& p) { hostPort = p; }
   /** Gives the database name */
   inline std::wstring getDatabaseName() const { return databaseName; }
-  /** Sets the database name */
-  void                setDatabaseName(const std::wstring&) throw 
(ConnectionException, UnexpectedException);
+  /** Checks the database name */
+  static
+  const std::wstring& checkDatabaseName(const std::wstring&)
+    throw (ConnectionException, UnexpectedException);
   /** Gives the user name */
   inline std::wstring getUserName() const { return userName; }
-  /** Sets the user name */
-  inline void         setUserName(const std::wstring& name) { userName = name; 
}
   /** Gives the user password */
   inline std::wstring getUserPass() const { return userPass; }
-  /** Sets the user password */
-  inline void         setUserPass(const std::wstring& pass) { userPass = pass; 
}
   /** Gives the debug level */
   inline DebugLevel   getDebugLevel() const { return debugLevel; }
-  /** Sets the debug level */
-  inline void         setDebugLevel(const DebugLevel& dl) { debugLevel = dl; }
   
 private:
   /** String representation of the host name, fully qualified or IP address */
-  std::wstring        hostName;
+  const std::wstring  hostName;
   /** Host port */
-  inetport_t          hostPort;
+  const inetport_t    hostPort;
   /** Name of the database */
-  std::wstring        databaseName;
+  const std::wstring  databaseName;
   /** User name for database access */
-  std::wstring        userName;
+  const std::wstring  userName;
   /** User password for database access */
-  std::wstring        userPass;
+  const std::wstring  userPass;
   /** Connection debug level */
-  DebugLevel          debugLevel;
+  const DebugLevel    debugLevel;
 
   //TODO: ControllerInfo, ConnectionPolicy
 };
Index: carob/src/ConnectionParameters.cpp
diff -u carob/src/ConnectionParameters.cpp:1.8 
carob/src/ConnectionParameters.cpp:1.9
--- carob/src/ConnectionParameters.cpp:1.8      Thu Dec 22 14:51:29 2005
+++ carob/src/ConnectionParameters.cpp  Thu Dec 22 15:20:50 2005
@@ -38,46 +38,42 @@
 ConnectionParameters::ConnectionParameters(const wstring& host, const 
inetport_t& port, 
                                            const wstring& db, const wstring& 
uname, 
                                            const wstring& upass, const 
DebugLevel& dl)
-    throw (ConnectionException, UnexpectedException)
+    throw (ConnectionException, UnexpectedException) :
+    hostName(checkHostName(host)),
+    hostPort(port),
+    databaseName(checkDatabaseName(db)),
+    userName(uname),
+    userPass(upass),
+    debugLevel(dl)
 {
-  setHostName(host);
-  setHostPort(port);
-  setDatabaseName(db);
-  setUserName(uname);
-  setUserPass(upass);
-  setDebugLevel(dl);
 }
 
 ConnectionParameters::~ConnectionParameters()
 {
 }
   
-void ConnectionParameters::setHostName(const wstring& hostNamePrm) throw 
(ConnectionException, UnexpectedException)
+const wstring& ConnectionParameters::checkHostName(const wstring& hostNamePrm)
+    throw (ConnectionException, UnexpectedException)
 {
   wchar_t pbChar;
-  hostName = hostNamePrm;
-  if (!isValidHostName(hostName, pbChar))
+  if (!isValidHostName(hostNamePrm, pbChar))
   {
-    wstring msg = L"Invalid hostname "+hostName+L" at character 
'"+(wchar_t)pbChar+L"'.";
-    hostName = L"";
+    wstring msg = L"Invalid hostname "+hostNamePrm+L" at character 
'"+(wchar_t)pbChar+L"'.";
     throw ConnectionException(msg);
   }
+  return hostNamePrm;
 }
 
-void ConnectionParameters::setDatabaseName(const wstring& dbname) throw 
(ConnectionException, UnexpectedException)
+const wstring& ConnectionParameters::checkDatabaseName(const wstring& dbname)
+    throw (ConnectionException, UnexpectedException)
 {
   wchar_t pbChar;
-  if (isValidDatabaseName(dbname, pbChar))
-  {
-    databaseName = dbname;
-  }
-  else
-  {
-    throw ConnectionException(L"Invalid database name "+dbname+L" at character 
'"+pbChar+L"'.");
-  }
+  if (!isValidDatabaseName(dbname, pbChar))
+      throw ConnectionException(L"Invalid database name "+dbname+L" at 
character '"+pbChar+L"'.");
+  return dbname;
 }
 
-bool ConnectionParameters::isValidDatabaseName(const wstring& databaseName, 
wchar_t& pbChar) const
+bool ConnectionParameters::isValidDatabaseName(const wstring& databaseName, 
wchar_t& pbChar)
 {
   int size = databaseName.length();
   wchar_t c;
@@ -95,7 +91,7 @@
   return true;
 }
 
-bool ConnectionParameters::isValidHostName(const wstring& hostNamePrm, 
wchar_t& pbChar) const
+bool ConnectionParameters::isValidHostName(const wstring& hostNamePrm, 
wchar_t& pbChar)
 {
   int size = hostNamePrm.length();
   wchar_t c;

_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits

Reply via email to