dm-metamapper 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  module DataMapper
2
2
  module MetaMapper
3
- VERSION = "0.1.4" unless defined?(::DataMapper::MetaMapper::VERSION)
3
+ VERSION = "0.1.6" unless defined?(::DataMapper::MetaMapper::VERSION)
4
4
  end
5
5
 
6
6
  end
@@ -9,33 +9,33 @@ DBFace* DBFace::_this = NULL;
9
9
 
10
10
  DBFace::DBFace(const string& database, const string& host,
11
11
  const string& user, const string& password)
12
- : _os(NULL)
12
+ : _os(NULL), _host(host), _user(user), _database(database),
13
+ _password(password)
13
14
  {
14
15
  _this = this;
15
- if (!_connection.connect(database.c_str(), host.c_str(),
16
- user.c_str(), password.c_str()))
17
- {
18
- if (_os)
19
- (*_os) << "Could not connect to DB";
20
- cerr << "Could not connect to DB";
21
- exit(-1);
22
- }
16
+ connect();
23
17
  }
24
18
 
25
19
  DBFace::DBFace(const string& database, const string& host,
26
20
  const string& user, const string& password,
27
21
  ostream* os)
28
- : _os(os)
22
+ : _os(os), _host(host), _user(user), _database(database),
23
+ _password(password)
29
24
  {
30
25
  _this = this;
31
- if (!_connection.connect(database.c_str(), host.c_str(),
32
- user.c_str(), password.c_str()))
26
+ connect();
27
+ }
28
+
29
+ void
30
+ DBFace::connect()
31
+ {
32
+ if (!_connection.connect(_database.c_str(), _host.c_str(),
33
+ _user.c_str(), _password.c_str()))
33
34
  {
34
35
  if (_os)
35
- (*_os) << "Could not connect to DB";
36
+ (*_os) << "Could not connect to DB";
36
37
  cerr << "Could not connect to DB";
37
- exit(-1);
38
- }
38
+ }
39
39
  }
40
40
 
41
41
  void
@@ -82,6 +82,10 @@ DBFace::select(const vector<string>& tables,
82
82
  }
83
83
  catch (const mysqlpp::Exception& er) {
84
84
  logError(er.what());
85
+ if (q.str() == "MySQL server has gone away"){
86
+ connect();
87
+ sleep(10);
88
+ }
85
89
  return false;
86
90
  }
87
91
 
@@ -114,6 +118,10 @@ DBFace::count(const vector<string>& tables,
114
118
  }
115
119
  catch (const mysqlpp::Exception& er) {
116
120
  logError(er.what());
121
+ if (q.str() == "MySQL server has gone away"){
122
+ connect();
123
+ sleep(10);
124
+ }
117
125
  return false;
118
126
  }
119
127
 
@@ -151,6 +159,10 @@ DBFace::executeQuery(Query& q)
151
159
  }
152
160
  catch (const mysqlpp::Exception& er) {
153
161
  logError(er.what());
162
+ if (q.str() == "MySQL server has gone away"){
163
+ connect();
164
+ sleep(10);
165
+ }
154
166
  return false;
155
167
  }
156
168
  return true;
@@ -20,7 +20,8 @@ public:
20
20
  DBFace(const std::string& database, const std::string& host,
21
21
  const std::string& user, const std::string& password,
22
22
  std::ostream* os);
23
-
23
+ void connect();
24
+
24
25
  bool insert(const std::string& table,
25
26
  const std::map<std::string, std::string>& field2Val,
26
27
  size_t& rInsertId);
@@ -55,6 +56,10 @@ private:
55
56
  mutable boost::mutex _mutex;
56
57
  static DBFace* _this;
57
58
  std::ostream* _os;
59
+ std::string _host;
60
+ std::string _user;
61
+ std::string _database;
62
+ std::string _password;
58
63
  };
59
64
 
60
65
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-metamapper
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 4
10
- version: 0.1.4
9
+ - 6
10
+ version: 0.1.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jonah Honeyman
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-02-27 00:00:00 +02:00
19
+ date: 2011-03-29 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies: []
22
22
 
@@ -29,34 +29,34 @@ extensions: []
29
29
  extra_rdoc_files:
30
30
  - README.md
31
31
  files:
32
- - lib/dm-metamapper/generator.rb
33
- - lib/dm-metamapper/model.rb
32
+ - lib/dm-metamapper/template.rb
34
33
  - lib/dm-metamapper/config.rb
34
+ - lib/dm-metamapper/metamapper.rb
35
+ - lib/dm-metamapper/version.rb
35
36
  - lib/dm-metamapper/generators/cpp.rb
37
+ - lib/dm-metamapper/generator.rb
38
+ - lib/dm-metamapper/model.rb
36
39
  - lib/dm-metamapper/property.rb
37
- - lib/dm-metamapper/version.rb
38
- - lib/dm-metamapper/metamapper.rb
39
- - lib/dm-metamapper/template.rb
40
40
  - lib/dm-metamapper.rb
41
+ - lib/templates/cpp/dmmm_utils.cpp.erb~
42
+ - lib/templates/cpp/dmmm_utils.cpp.erb
43
+ - lib/templates/cpp/dmmm_dbface.h.erb
41
44
  - lib/templates/cpp/dmmm_fields.hpp~
42
- - lib/templates/cpp/dmmm_dbface.cpp.erb
43
- - lib/templates/cpp/dmmm_utils.hpp~
45
+ - lib/templates/cpp/dmmm_comparators.hpp.erb
46
+ - lib/templates/cpp/dmmm_id.hpp.erb
47
+ - lib/templates/cpp/dmmm_identifiers.hpp~
44
48
  - lib/templates/cpp/dmmm_id.h~
49
+ - lib/templates/cpp/dmmm_utils.hpp~
45
50
  - lib/templates/cpp/dmmm_identifiers.hpp.erb
46
- - lib/templates/cpp/dmmm_utils.cpp.erb~
47
- - lib/templates/cpp/dmmm_dbface.h~
48
51
  - lib/templates/cpp/dmmm_fields.hpp.erb~
49
- - lib/templates/cpp/dmmm_comparators.hpp~
50
- - lib/templates/cpp/dmmm_comparators.hpp.erb
52
+ - lib/templates/cpp/dmmm_dbface.cpp.erb
53
+ - lib/templates/cpp/dmmm_dbface.cpp~
54
+ - lib/templates/cpp/dmmm_dbface.h~
51
55
  - lib/templates/cpp/dmmm_fields.hpp.erb
52
- - lib/templates/cpp/dmmm_dbface.h.erb
53
56
  - lib/templates/cpp/instance.hpp.erb
54
- - lib/templates/cpp/dmmm_id.hpp.erb
55
- - lib/templates/cpp/dmmm_utils.cpp.erb
56
- - lib/templates/cpp/dmmm_dbface.cpp~
57
57
  - lib/templates/cpp/dmmm_utils.hpp.erb
58
58
  - lib/templates/cpp/class.hpp.erb
59
- - lib/templates/cpp/dmmm_identifiers.hpp~
59
+ - lib/templates/cpp/dmmm_comparators.hpp~
60
60
  - README.md
61
61
  has_rdoc: true
62
62
  homepage: http://github.com/jonuts/dm-metamapper
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  requirements: []
91
91
 
92
92
  rubyforge_project: dm-metamapper
93
- rubygems_version: 1.3.7
93
+ rubygems_version: 1.6.2
94
94
  signing_key:
95
95
  specification_version: 3
96
96
  summary: Code generating C++ ORM