~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/user_locks/release_barrier.cc

  • Committer: Monty Taylor
  • Date: 2011-02-13 17:26:39 UTC
  • mfrom: (2157.2.2 give-in-to-pkg-config)
  • mto: This revision was merged to the branch mainline in revision 2166.
  • Revision ID: mordred@inaugust.com-20110213172639-nhy7i72sfhoq13ms
Merged in pkg-config fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
{
32
32
  drizzled::String *res= args[0]->val_str(&value);
33
33
 
34
 
  if (not res)
 
34
  if (not res || not res->length())
35
35
  {
 
36
    my_error(drizzled::ER_USER_LOCKS_INVALID_NAME_BARRIER, MYF(0));
36
37
    null_value= true;
37
38
    return 0;
38
39
  }
39
 
  null_value= false;
40
 
 
41
 
  if (not res->length())
42
 
    return 0;
43
 
 
44
 
  boost::tribool result= Barriers::getInstance().release(Key(getSession().getSecurityContext(), res->c_str()), getSession().getSessionId());
45
 
 
46
 
  if (result)
 
40
 
 
41
 
 
42
  drizzled::identifier::User::const_shared_ptr user_identifier(getSession().user());
 
43
 
 
44
  barriers::return_t result= Barriers::getInstance().release(Key(*user_identifier, res->c_str()), getSession().getSessionId());
 
45
 
 
46
  switch (result)
47
47
  {
48
 
    Storable *list= static_cast<Storable *>(getSession().getProperty(property_key));
49
 
    assert(list);
50
 
    if (not list) // We should have been the owner if it was passed to us, this should never happen
 
48
  default:
 
49
  case barriers::SUCCESS:
51
50
    {
52
 
      my_error(drizzled::ER_USER_LOCKS_NOT_OWNER_OF_BARRIER, MYF(0));
53
 
      null_value= true;
54
 
 
55
 
      return 0;
 
51
      Storable *list= static_cast<Storable *>(getSession().getProperty(property_key));
 
52
      assert(list);
 
53
      if (not list) // We should have been the owner if it was passed to us, this should never happen
 
54
      {
 
55
        my_error(drizzled::ER_USER_LOCKS_NOT_OWNER_OF_BARRIER, MYF(0));
 
56
        null_value= true;
 
57
 
 
58
        return 0;
 
59
      }
 
60
      list->erase(Key(*user_identifier, res->c_str()));
 
61
      null_value= false;
 
62
 
 
63
      return 1;
56
64
    }
57
 
    list->erase(Key(getSession().getSecurityContext(), res->c_str()));
58
 
 
59
 
    return 1;
60
 
  }
61
 
  else if (not result)
62
 
  {
 
65
  case barriers::NOT_FOUND:
 
66
    my_error(drizzled::ER_USER_LOCKS_UNKNOWN_BARRIER, MYF(0));
 
67
    null_value= true;
 
68
    return 0;
 
69
  case barriers::NOT_OWNED_BY:
63
70
    my_error(drizzled::ER_USER_LOCKS_NOT_OWNER_OF_BARRIER, MYF(0));
64
 
  }
65
 
  else
66
 
  {
67
 
    my_error(drizzled::ER_USER_LOCKS_UNKNOWN_BARRIER, MYF(0));
68
 
  }
69
 
 
70
 
  null_value= true;
71
 
 
72
 
  return 0;
 
71
    null_value= true;
 
72
    return 0;
 
73
  }
73
74
}
74
75
 
75
76
} /* namespace barriers */