Ejemplo n.º 1
0
CloudSessionRecord CloudSessionRecord::factoryFromCloudSession(const CloudSession& cloudSession, 
                                                               ProjectDatabase& database)
{
  if (cloudSession.optionalCast<VagrantSession>()) {
    return VagrantSessionRecord(cloudSession.cast<VagrantSession>(), database);
  }
  if (cloudSession.optionalCast<AWSSession>()) {
    return AWSSessionRecord(cloudSession.cast<AWSSession>(), database);
  }

  OS_ASSERT(false);
  return CloudSessionRecord(std::shared_ptr<detail::CloudSessionRecord_Impl>());
}
Ejemplo n.º 2
0
std::vector<VagrantSessionRecord> VagrantSessionRecord::getVagrantSessionRecords(ProjectDatabase& database) {
  std::vector<VagrantSessionRecord> result;

  QSqlQuery query(*(database.qSqlDatabase()));
  query.prepare(toQString("SELECT * FROM " + CloudSessionRecord::databaseTableName() + " WHERE cloudSessionRecordType=:cloudSessionRecordType"));
  query.bindValue(":cloudSessionRecordType", CloudSessionRecordType::VagrantSessionRecord);
  assertExec(query);
  while (query.next()) {
    result.push_back(VagrantSessionRecord(query, database));
  }

  return result;
}
Ejemplo n.º 3
0
boost::optional<VagrantSessionRecord> VagrantSessionRecord::getVagrantSessionRecord(int id, ProjectDatabase& database) {
  boost::optional<VagrantSessionRecord> result;

  QSqlQuery query(*(database.qSqlDatabase()));
  query.prepare(toQString("SELECT * FROM " + CloudSessionRecord::databaseTableName() + " WHERE cloudSessionRecordType=:cloudSessionRecordType AND id=:id"));
  query.bindValue(":cloudSessionRecordType", CloudSessionRecordType::VagrantSessionRecord);
  query.bindValue(":id",id);
  assertExec(query);
  if (query.first()) {
    result = VagrantSessionRecord(query, database);
  }

  return result;
}
Ejemplo n.º 4
0
boost::optional<VagrantSessionRecord> VagrantSessionRecord::factoryFromQuery(const QSqlQuery& query, ProjectDatabase& database)
{
  OptionalVagrantSessionRecord result;

  try {
    result = VagrantSessionRecord(query,database);
  }
  catch (const std::exception& e) {
    LOG(Error,"Unable to construct VagrantSessionRecord from query, because '"
        << e.what() << "'.");
  }

  return result;
}
Ejemplo n.º 5
0
boost::optional<CloudSessionRecord> CloudSessionRecord::factoryFromQuery(const QSqlQuery& query, ProjectDatabase& database)
{
  OptionalCloudSessionRecord result;

  int cloudSessionRecordType = query.value(CloudSessionRecordColumns::cloudSessionRecordType).toInt();

  switch (cloudSessionRecordType) {
    case CloudSessionRecordType::VagrantSessionRecord : 
      result = VagrantSessionRecord(query, database).cast<CloudSessionRecord>();
     break;
    case CloudSessionRecordType::AWSSessionRecord :
      result = AWSSessionRecord(query, database).cast<CloudSessionRecord>();
     break;
    default :
      LOG(Error,"Unknown CloudSessionRecordType " << cloudSessionRecordType);
      return boost::none;
  }

  return result;
}