summaryrefslogtreecommitdiff
path: root/TAO/CIAO/ciao/Cookies.cpp
blob: 2673151b5cc4569366dd99632e543ac5618609d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// $Id$

#include "Cookies.h"

#if !defined (__ACE_INLINE__)
#include "Cookies.inl"
#endif /* !defined INLINE */


/// Initialize a @c Cookie with an @c ACE_Active_Map_Manager_Key
CIAO::Map_Key_Cookie::Map_Key_Cookie (const ACE_Active_Map_Manager_Key &key)
{
  this->cookieValue ().length (ACE_Active_Map_Manager_Key::size ());
  key.encode (this->cookieValue ().get_buffer (0));
}

// CIAO::Map_Key_Cookie::Map_Key_Cookie (const ::OBV_Components::Cookie &ck)
// {
//   this->cookieValue (ACE_reinterpret_cast (CIAO::Map_Key_Cookie, ck).cookieValue ());
// }

int
CIAO::Map_Key_Cookie::insert (ACE_Active_Map_Manager_Key &key)
{
  this->cookieValue ().length (ACE_Active_Map_Manager_Key::size ());
  key.encode (this->cookieValue ().get_buffer (0));
  return 0;
}

int
CIAO::Map_Key_Cookie::extract (::Components::Cookie *ck,
                               ACE_Active_Map_Manager_Key &key)
{
  CIAO::Cookie *c = CIAO::Cookie::_downcast (ck);

  if (c == 0)
    return -1;

  ::CORBA::OctetSeq *x = c->get_cookie ();

  if (x->length () != ACE_Active_Map_Manager_Key::size ())
    return -1;
  key.decode (x->get_buffer ());
  return 0;
}


CORBA::ValueBase *
CIAO::Map_Key_Cookie_init::create_for_unmarshal (void)
{
  CORBA::ValueBase *ret_val = 0;
  ACE_NEW_RETURN (
      ret_val,
      CIAO::Map_Key_Cookie,
      0
    );
  return ret_val;
}

::CORBA::OctetSeq *
CIAO::Map_Key_Cookie::get_cookie (ACE_ENV_SINGLE_ARG_DECL)
{
  return &this->cookieValue ();
}