Teamcenter C++ API Reference  2312
IToken.hxx
Go to the documentation of this file.
1 //Copyright 2022 Siemens Digital Industries Software
2 //==================================================
3 //Copyright $2014.
4 //Siemens Product Lifecycle Management Software Inc.
5 //All Rights Reserved.
6 //==================================================
7 //Copyright 2022 Siemens Digital Industries Software
8 
9 /*=================================================================================================
10 File description:
11  This file contains the definition for the interface IToken.
12 
13 
14  Filename: IToken.hxx
15  Module : awb0occmgmt
16 ==================================================================================================*/
17 
18 #ifndef TEAMCENTER_ITOKEN_HXX
19 #define TEAMCENTER_ITOKEN_HXX
20 
21 #include <base_utils/SharedPtr.hxx>
23 #include <awb0occmgmt/libawb0occmgmt_exports.h>
24 
25 namespace Teamcenter
26 {
27  namespace OccMgmt
28  {
29  class IToken;
32  }
33 }
34 
35 class AWB0OCCMGMT_API Teamcenter::OccMgmt::IToken
36 {
37  public:
38 
39  IToken();
40  virtual ~IToken();
41 
42  virtual tag_t getToken() const = 0;
43  virtual bool operator==( const IToken& otherToken ) const = 0;
44 
45  template <typename U> bool isInstanceOf()
46  {
47  U* ptr = 0;
48 
49  try
50  {
51  ptr = dynamic_cast<U*>( this );
52  }
53  catch ( ... )
54  {
55  }
56  return ptr ? true : false;
57  };
58 
59  private:
60 
61  IToken( const IToken& );
62  IToken& operator=( const IToken& );
63 };
64 
65 #include <awb0occmgmt/libawb0occmgmt_undef.h>
66 #endif // TEAMCENTER_ITOKEN_HXX