00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _RESOURCEGW_H_
00033 #define _RESOURCEGW_H_
00034
00035
00036
00037
00038 #include "resource.h"
00039
00040
00041
00042 namespace OSB_LIB {
00043 class Resource;
00044 class Period;
00045 class PersProduct;
00046 }
00047
00048 namespace OSB_DB {
00049 class Session;
00050 }
00051
00052
00053
00054 namespace OSB_DB {
00055
00056
00057
00058
00059
00060
00064 class ResourceGw {
00066 friend class OSB_LIB::Resource;
00067
00068 public:
00096 OSB_LIB::Id<OSB_LIB::PersProduct> getPersProduct(
00097 const Session& session,
00098 const OSB_LIB::ResourceKey& resourceKey,
00099 const OSB_LIB::DateTime& timestamp,
00100 OSB_LIB::Period& assigned
00101 ) const;
00102
00118 OSB_LIB::Period getBounds(
00119 const Session& session,
00120 const OSB_LIB::ResourceKey& resourceKey,
00121 const OSB_LIB::DateTime& timestamp
00122 );
00123
00124 private:
00136 bool fetch(
00137 const Session& session,
00138 OSB_LIB::Resource& resource
00139 ) const;
00140
00156 bool insert(
00157 const Session& session,
00158 OSB_LIB::Resource& resource
00159 ) const;
00160
00169 bool updData(
00170 const Session& session,
00171 const OSB_LIB::Resource& resource
00172 ) const;
00182 void updStatus(
00183 const Session& session,
00184 const OSB_LIB::Resource& resource
00185 ) const;
00186
00196 bool updAssigned(
00197 const Session& session,
00198 const OSB_LIB::Resource& resource
00199 ) const;
00200
00209 bool remove(
00210 const Session& session,
00211 const OSB_LIB::Resource& resource
00212 ) const;
00213
00226 bool getQuarantineDays(
00227 const Session& session,
00228 OSB_LIB::ResourceType rt,
00229 long& days
00230 ) const;
00231
00252 bool getPersResourceStatus(
00253 const Session& session,
00254 const OSB_LIB::Resource::Oid& rid,
00255 const OSB_LIB::DateTime& ts,
00256 OSB_LIB::Status& status
00257 );
00258
00268 OSB_LIB::ObjectStatus lock(
00269 const Session& session,
00270 const OSB_LIB::Resource& resource,
00271 bool noWait
00272 );
00273
00287 bool incObjVs(
00288 const Session& session,
00289 OSB_LIB::Resource& resource
00290 );
00291 };
00292 }
00293 #endif // #ifndef _RESOURCEGW_H_