NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
generic_resource_interface.h
Go to the documentation of this file.
1 #ifndef SDK_BASE_SDK_RESOURCE_INTERFACE_H_
11 #define SDK_BASE_SDK_RESOURCE_INTERFACE_H_
12 
13 #include <base/inc/base_types.h>
14 #include <base/inc/sdk_ref_ptr.h>
18 
19 namespace sdk {
20 namespace base {
21 
25 FWD_DECL_INTERFACE(ISDKResource);
26 FWD_DECL_INTERFACE(ISDKResourceInfo);
27 FWD_DECL_INTERFACE(ISDKResourceStorage);
28 FWD_DECL_INTERFACE(ISDKResourceStorageEnumerator);
29 FWD_DECL_INTERFACE(ISDKResourceManager);
30 FWD_DECL_INTERFACE(ISDKMemoryBuffer);
31 typedef SDKRefPtr<ISDKResource> SDKResourceSP;
32 typedef SDKRefPtr<ISDKResourceInfo> SDKResourceInfoSP;
33 typedef SDKRefPtr<ISDKResourceStorage> SDKResourceStorageSP;
34 typedef SDKRefPtr<ISDKResourceStorageEnumerator> SDKResourceStorageEnumeratorSP;
35 typedef SDKRefPtr<ISDKResourceManager> SDKResourceManagerSP;
36 typedef SDKRefPtr<ISDKMemoryBuffer> SDKMemoryBufferSP;
37 
40 typedef enum OpenResourceFlags
41 {
49 
54 {
55 public:
57  virtual SDKResult SDK_CALLTYPE GetInfo(SDKResourceInfoSP& info) throw() = 0;
59  virtual SDKResult SDK_CALLTYPE OpenStream(SDKUInt64 context,
60  SDKStreamSP& stream) throw() = 0;
61 
62  //ISDKNamedProperties
63  //virtual SDKResult SDK_CALLTYPE SetProperty(const SDKString& id, const SDKAny& value) throw();
64  //virtual SDKResult SDK_CALLTYPE GetProperty(const SDKString& id, SDKAny& value) const throw();
65 
66  SDK_IMPLEMENT_IID(ISDKResource)
67  SDK_END_INTERFACE(ISDKResource)
68 };
69 SDK_DECLARE_IID(ISDKResource)
70 
75 {
76 public:
78  virtual SDKResult SDK_CALLTYPE GetClass(
79  SDKString& resource_class) const throw() = 0;
81  virtual SDKResult SDK_CALLTYPE GetType(
82  SDKString& resource_type) const throw() = 0;
84  virtual SDKResult SDK_CALLTYPE GetName(
85  SDKString& name) const throw() = 0;
87  virtual SDKResult SDK_CALLTYPE GetParentPath(
88  SDKString& path) const throw() = 0;
90  virtual SDKResult SDK_CALLTYPE GetFullPath(
91  SDKString& path) const throw() = 0;
93  virtual SDKResult SDK_CALLTYPE GetSize(
94  SDKUInt64& size) const throw() = 0;
95 
96  //ISDKNamedProperties
97  //virtual SDKResult SDK_CALLTYPE SetProperty(const SDKString& id, const SDKAny& value) throw();
98  //virtual SDKResult SDK_CALLTYPE GetProperty(const SDKString& id, SDKAny& value) const throw();
99 
100  SDK_IMPLEMENT_IID(ISDKResourceInfo)
101  SDK_END_INTERFACE(ISDKResourceInfo)
102 };
103 SDK_DECLARE_IID(ISDKResourceInfo)
104 
105 class ISDKResourceStorage : public ISDKResource
109 {
110 public:
111  // ISDKResource
112  //virtual SDKResult SDK_CALLTYPE GetInfo(SDKResourceInfoSP& info) throw() = 0;
113  //virtual SDKResult SDK_CALLTYPE OpenStream(SDKUInt64 context, SDKStreamSP& stream) throw() = 0;
114  //ISDKNamedProperties
115  //virtual SDKResult SDK_CALLTYPE SetProperty(const SDKString& id, const SDKAny& value) throw();
116  //virtual SDKResult SDK_CALLTYPE GetProperty(const SDKString& id, SDKAny& value) const throw();
117 
119  virtual SDKResult SDK_CALLTYPE GetResource(const SDKString& name,
120  SDKResourceSP& resource) throw() = 0;
122  virtual SDKResult SDK_CALLTYPE EnumResources(
123  SDKResourceStorageEnumeratorSP& enumerator) throw() = 0;
124 
126  virtual SDKResult SDK_CALLTYPE CreateResource(const SDKString& resource_type,
127  const SDKString& name, SDKResourceSP& resource) throw() = 0;
129  virtual SDKResult SDK_CALLTYPE DeleteResource(
130  const SDKString& name) throw() = 0;
131 
132  SDK_IMPLEMENT_IID(ISDKResourceStorage)
133  SDK_END_INTERFACE(ISDKResourceStorage)
134 };
135 SDK_DECLARE_IID(ISDKResourceStorage)
136 
137 class ISDKResourceStorageEnumerator : public ISDKComponent
140 {
141 public:
143  virtual SDKResult SDK_CALLTYPE Reset() throw() = 0;
145  virtual SDKResult SDK_CALLTYPE GetNext(SDKResourceSP& resource) throw() = 0;
146 
147  SDK_IMPLEMENT_IID(ISDKResourceStorageEnumerator)
148  SDK_END_INTERFACE(ISDKResourceStorageEnumerator)
149 };
150 SDK_DECLARE_IID(ISDKResourceStorageEnumerator)
151 
155 {
156 public:
158  virtual SDKResult SDK_CALLTYPE Create (const SDKString& resource_type,
159  const SDKString& name, SDKResourceSP& resource) = 0;
161  virtual SDKResult SDK_CALLTYPE Delete (const SDKString& name) = 0;
163  virtual SDKResult SDK_CALLTYPE Copy(const SDKString& name,
164  const SDKString& new_name, SDKResourceSP& new_resource) = 0;
166  virtual SDKResult SDK_CALLTYPE Move(const SDKString& name,
167  const SDKString& new_name, SDKResourceSP& new_resource) = 0;
169  virtual SDKResult SDK_CALLTYPE IsExist(const SDKString& name) = 0;
170 
171  //ISDKNamedProperties
172  //virtual SDKResult SDK_CALLTYPE SetProperty(const SDKString& id, const SDKAny& value) throw() = 0;
173  //virtual SDKResult SDK_CALLTYPE GetProperty(const SDKString& id, SDKAny& value) const throw() = 0;
174 
175  SDK_IMPLEMENT_IID(ISDKResourceManager)
176  SDK_END_INTERFACE(ISDKResourceManager)
177 };
178 SDK_DECLARE_IID(ISDKResourceManager)
179 
180 class ISDKMemoryBuffer : public ISDKComponent
184 {
185 public:
187  virtual SDKResult SDK_CALLTYPE GetRawData(SDKUInt8** buffer,
188  SDKUInt64* size) throw() = 0;
189 
191  virtual SDKResult SDK_CALLTYPE GetSize(SDKUInt64& size) throw() = 0;
192 
193  SDK_IMPLEMENT_IID(ISDKMemoryBuffer)
194  SDK_END_INTERFACE(ISDKMemoryBuffer)
195 };
196 SDK_DECLARE_IID(ISDKMemoryBuffer)
197 
198 } // namespace base
199 } // namespace sdk
200 
201 #endif // SDK_BASE_SDK_STORAGE_INTERFACE_H_
sdk::base::ISDKResource
Provides access to members that return information about and manage the resource object.
Definition: generic_resource_interface.h:53
sdk::base::kOpenResourceFlags_Read
@ kOpenResourceFlags_Read
Create/open resource only for reading.
Definition: generic_resource_interface.h:42
sdk::base::kOpenResourceFlags_Create
@ kOpenResourceFlags_Create
Creates resource or truncate if exists.
Definition: generic_resource_interface.h:44
sdk::base::ISDKResourceManager
Provides access to members that manage the resource object.
Definition: generic_resource_interface.h:154
base_types.h
SDK base types.
sdk::base::kOpenResourceFlags_Append
@ kOpenResourceFlags_Append
Open resouce and search to the end.
Definition: generic_resource_interface.h:45
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
sdk::base::kOpenResourceFlags_Exclusive
@ kOpenResourceFlags_Exclusive
Create/open resource in exclusive mode.
Definition: generic_resource_interface.h:46
sdk::base::kOpenResourceFlags_Text
@ kOpenResourceFlags_Text
Open file in text mode (default is binary).
Definition: generic_resource_interface.h:47
sdk::base::kOpenResourceFlags_Write
@ kOpenResourceFlags_Write
Create/open resource only for writing.
Definition: generic_resource_interface.h:43
sdk::base::ISDKResourceInfo::GetSize
virtual SDKResult SDK_CALLTYPE GetSize(SDKUInt64 &size) const =0
Returns the size of the resource.
sdk::base::ISDKResourceStorage::GetResource
virtual SDKResult SDK_CALLTYPE GetResource(const SDKString &name, SDKResourceSP &resource)=0
Returns a specified resource.
sdk::base::ISDKResourceStorage::EnumResources
virtual SDKResult SDK_CALLTYPE EnumResources(SDKResourceStorageEnumeratorSP &enumerator)=0
Enumerates resources.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::base::ISDKResourceInfo::GetName
virtual SDKResult SDK_CALLTYPE GetName(SDKString &name) const =0
Returns the name of the resource.
stream_interface.h
Generic data stream interface.
SDKRefPtr
A smart pointer class for managing SDK components interface pointers.
Definition: sdk_ref_ptr.h:23
sdk::base::ISDKResourceInfo::GetClass
virtual SDKResult SDK_CALLTYPE GetClass(SDKString &resource_class) const =0
Returns the class of the resource.
sdk_component_interface.h
Common base SDK interfaces.
sdk::ISDKNamedProperties
Provides access to members that control the named properties.
Definition: named_properties_interface.h:29
sdk::base::OpenResourceFlags
OpenResourceFlags
Resource creation flags (first part of resource creation context)
Definition: generic_resource_interface.h:40
sdk::base::ISDKMemoryBuffer
Provides access to members that return information about the memory buffer.
Definition: generic_resource_interface.h:183
sdk::base::ISDKResourceStorageEnumerator::Reset
virtual SDKResult SDK_CALLTYPE Reset()=0
Resets the enumeration sequence to the beginning.
sdk::base::ISDKResourceInfo
Provides access to members that return information about the resource object.
Definition: generic_resource_interface.h:74
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
sdk::base::ISDKResource::GetInfo
virtual SDKResult SDK_CALLTYPE GetInfo(SDKResourceInfoSP &info)=0
Returns information.
sdk::base::ISDKResourceInfo::GetParentPath
virtual SDKResult SDK_CALLTYPE GetParentPath(SDKString &path) const =0
Returns the path to the parent of the resource.
sdk::base::ISDKResourceStorageEnumerator::GetNext
virtual SDKResult SDK_CALLTYPE GetNext(SDKResourceSP &resource)=0
Retrieves a next resource in the enumeration sequence.
sdk::base::ISDKResourceInfo::GetFullPath
virtual SDKResult SDK_CALLTYPE GetFullPath(SDKString &path) const =0
Returns the full path to the resource.
named_properties_interface.h
Object generic named properties interface.
sdk::base::ISDKResourceStorage::CreateResource
virtual SDKResult SDK_CALLTYPE CreateResource(const SDKString &resource_type, const SDKString &name, SDKResourceSP &resource)=0
Creates a resource.
sdk::base::ISDKResource::OpenStream
virtual SDKResult SDK_CALLTYPE OpenStream(SDKUInt64 context, SDKStreamSP &stream)=0
Opens stream.
sdk::base::ISDKResourceStorage::DeleteResource
virtual SDKResult SDK_CALLTYPE DeleteResource(const SDKString &name)=0
Deletes a specified resource.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
sdk::base::ISDKResourceInfo::GetType
virtual SDKResult SDK_CALLTYPE GetType(SDKString &resource_type) const =0
Returns the type of the resource.