Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Unified Diff: third_party/smartany/smart_any_fwd.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/smartany/shared_any.cc ('k') | tools/ApplyTag/apply_tag_tool.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/smartany/smart_any_fwd.h
diff --git a/third_party/smartany/smart_any_fwd.h b/third_party/smartany/smart_any_fwd.h
deleted file mode 100644
index 17e25713a396e05e55a1c5e05b878a560802c68a..0000000000000000000000000000000000000000
--- a/third_party/smartany/smart_any_fwd.h
+++ /dev/null
@@ -1,1053 +0,0 @@
-//+---------------------------------------------------------------------------
-//
-// Copyright ( C ) Microsoft, 2002.
-//
-// File: smart_any_fwd.h
-//
-// Contents: automatic resource management
-//
-// Classes: auto_any, scoped_any and shared_any
-//
-// Functions: get
-// reset
-// release
-// valid
-// address
-//
-// Author: Eric Niebler ( ericne@microsoft.com )
-//
-//----------------------------------------------------------------------------
-
-#ifndef SMART_ANY_FWD
-#define SMART_ANY_FWD
-
-#ifdef _MANAGED
-#pragma warning( push )
-#pragma warning( disable : 4244 )
-#include <vcclr.h>
-#pragma warning( pop )
-#endif
-
-// Check to see if partial template specialization is available
-#if _MSC_VER >= 1310
-#define SMART_ANY_PTS
-#endif
-
-// forward declare some invalid_value policy classes
-struct null_t;
-
-template<typename T,T value = T(0)>
-struct value_const;
-
-struct close_release_com;
-
-//
-// TEMPLATE CLASS auto_any
-//
-template<typename T,class close_policy,class invalid_value = null_t,int unique = 0>
-class auto_any;
-
-// return wrapped resource
-template<typename T,class close_policy,class invalid_value,int unique>
-T get( auto_any<T,close_policy,invalid_value,unique> const & t );
-
-// return true if the auto_any contains a currently valid resource
-template<typename T,class close_policy,class invalid_value,int unique>
-bool valid( auto_any<T,close_policy,invalid_value,unique> const & t );
-
-// return wrapped resource and give up ownership
-template<typename T,class close_policy,class invalid_value,int unique>
-T release( auto_any<T,close_policy,invalid_value, unique> & t );
-
-// destroy designated object
-template<typename T,class close_policy,class invalid_value,int unique>
-void reset( auto_any<T,close_policy,invalid_value,unique> & t );
-
-// destroy designated object and store new resource
-template<typename T,class close_policy,class invalid_value,int unique,typename U>
-void reset( auto_any<T,close_policy,invalid_value,unique> & t, U newT );
-
-// swap the contents of two shared_any objects
-template<typename T,class close_policy,class invalid_value,int unique>
-void swap( auto_any<T,close_policy,invalid_value,unique> & left,
- auto_any<T,close_policy,invalid_value,unique> & right );
-
-// return the address of the wrapped resource
-// WARNING: this will assert if the value of the resource is
-// anything other than invalid_value.
-//template<typename T,class close_policy,class invalid_value,int unique>
-//T* address( auto_any<T,close_policy,invalid_value,unique> & t );
-
-//
-// TEMPLATE CLASS shared_any
-//
-template<typename T,class close_policy,class invalid_value = null_t,int unique = 0>
-class shared_any;
-
-// return wrapped resource
-template<typename T,class close_policy,class invalid_value,int unique>
-T get( shared_any<T,close_policy,invalid_value,unique> const & t );
-
-// return true if the auto_any contains a currently valid resource
-template<typename T,class close_policy,class invalid_value,int unique>
-bool valid( shared_any<T,close_policy,invalid_value,unique> const & t );
-
-// destroy designated object
-template<typename T,class close_policy,class invalid_value,int unique>
-void reset( shared_any<T,close_policy,invalid_value,unique> & t );
-
-// destroy designated object and store new resource
-template<typename T,class close_policy,class invalid_value,int unique,typename U>
-void reset( shared_any<T,close_policy,invalid_value,unique> & t, U newT );
-
-// swap the contents of two shared_any objects
-template<typename T,class close_policy,class invalid_value,int unique>
-void swap( shared_any<T,close_policy,invalid_value,unique> & left,
- shared_any<T,close_policy,invalid_value,unique> & right );
-
-
-//
-// TEMPLATE CLASS scoped_any
-//
-template<typename T,class close_policy,class invalid_value = null_t,int unique = 0>
-class scoped_any;
-
-// return wrapped resource
-template<typename T,class close_policy,class invalid_value,int unique>
-T get( scoped_any<T,close_policy,invalid_value,unique> const & t );
-
-// return true if the auto_any contains a currently valid resource
-template<typename T,class close_policy,class invalid_value,int unique>
-bool valid( scoped_any<T,close_policy,invalid_value,unique> const & t );
-
-// return wrapped resource and give up ownership
-template<typename T,class close_policy,class invalid_value,int unique>
-T release( scoped_any<T,close_policy,invalid_value, unique> & t );
-
-// destroy designated object
-template<typename T,class close_policy,class invalid_value,int unique>
-void reset( scoped_any<T,close_policy,invalid_value,unique> & t );
-
-// destroy designated object and store new resource
-template<typename T,class close_policy,class invalid_value,int unique,typename U>
-void reset( scoped_any<T,close_policy,invalid_value,unique> & t, U newT );
-
-// return the address of the wrapped resource
-// WARNING: this will assert if the value of the resource is
-// anything other than invalid_value.
-//template<typename T,class close_policy,class invalid_value,int unique>
-//T* address( scoped_any<T,close_policy,invalid_value,unique> & t );
-
-// close policy for objects allocated with new
-struct close_delete;
-
-namespace detail
-{
- typedef char (&yes)[1];
- typedef char (&no) [2];
-
- struct dummy_struct
- {
- void dummy_method() {}
- };
-
- typedef void (dummy_struct::*safe_bool)();
- safe_bool const safe_true = &dummy_struct::dummy_method;
- safe_bool const safe_false = 0;
-
- // Because of older compilers, we can't always use
- // null_t when we would like to.
- template<class invalid_value>
- struct fixup_invalid_value
- {
- template<typename> struct rebind { typedef invalid_value type; };
- };
-
- // for compile-time assertions
- template<bool>
- struct static_assert;
-
- template<>
- struct static_assert<true>
- {
- static_assert() {}
- };
-
- template<typename T>
- struct static_init
- {
- static T const value;
- };
-
- template<typename T>
- T const static_init<T>::value = T();
-
- template<bool>
- struct null_helper // unmanaged
- {
- template<typename T>
- struct inner
- {
- static T const get()
- {
- return static_init<T>::value;
- }
- };
- };
-
- template<>
- struct null_helper<true> // managed
- {
- template<typename T>
- struct inner
- {
- static T const get()
- {
- return 0;
- }
- };
- };
-
- typedef char (&yes_t)[1];
- typedef char (& no_t)[2];
-
- template<bool>
- struct select_helper
- {
- template<typename T,typename>
- struct inner { typedef T type; };
- };
-
- template<>
- struct select_helper<false>
- {
- template<typename,typename U>
- struct inner { typedef U type; };
- };
-
- template<bool F,typename T,typename U>
- struct select
- {
- typedef typename select_helper<F>::template inner<T,U>::type type;
- };
-
-
- template< bool >
- struct holder_helper
- {
- template<typename T>
- struct inner
- {
- typedef T type;
- };
- };
-
- template< typename T >
- struct remove_ref
- {
- typedef T type;
- };
-
- #ifdef SMART_ANY_PTS
- template< typename T >
- struct remove_ref<T&>
- {
- typedef T type;
- };
- #endif
-
- template<typename T>
- T* address_of( T & v )
- {
- return reinterpret_cast<T*>(
- &const_cast<char&>(
- reinterpret_cast<char const volatile &>(v)));
- }
-
- #ifndef _MANAGED
-
- template<typename T>
- struct is_managed
- {
- static bool const value = false;
- };
-
- #else
-
- struct managed_convertible
- {
- managed_convertible( System::Object const volatile __gc* );
- managed_convertible( System::Enum const volatile __gc* );
- managed_convertible( System::ValueType const volatile __gc* );
- managed_convertible( System::Delegate const volatile __gc* );
- };
-
- template<typename T>
- struct is_managed
- {
- private:
- static yes_t check( managed_convertible );
- static no_t __cdecl check( ... );
- static typename remove_ref<T>::type & make();
- public:
- static bool const value = sizeof( yes_t ) == sizeof( check( make() ) );
- };
-
- #ifdef SMART_ANY_PTS
- template<typename T>
- struct is_managed<T __gc&>
- {
- static bool const value = true;
- };
- template<typename T>
- struct is_managed<T __gc*>
- {
- static bool const value = true;
- };
- template<typename T>
- struct is_managed<T __gc*const>
- {
- static bool const value = is_managed<T __gc*>::value;
- };
- template<typename T>
- struct is_managed<T __gc*volatile>
- {
- static bool const value = is_managed<T __gc*>::value;
- };
- template<typename T>
- struct is_managed<T __gc*const volatile>
- {
- static bool const value = is_managed<T __gc*>::value;
- };
- #endif
- template<>
- struct is_managed<System::Void __gc*>
- {
- static bool const value = true;
- };
- template<>
- struct is_managed<System::Void const __gc*>
- {
- static bool const value = true;
- };
- template<>
- struct is_managed<System::Void volatile __gc*>
- {
- static bool const value = true;
- };
- template<>
- struct is_managed<System::Void const volatile __gc*>
- {
- static bool const value = true;
- };
-
- template<>
- struct holder_helper<true>
- {
- template<typename T>
- struct inner
- {
- typedef gcroot<T> type;
- };
- };
- #endif
-
- template<typename T>
- struct holder
- {
- typedef typename holder_helper<is_managed<T>::value>::template inner<T>::type type;
- };
-
- template<typename T>
- struct is_delete
- {
- static bool const value = false;
- };
-
- template<>
- struct is_delete<close_delete>
- {
- static bool const value = true;
- };
-
- // dummy type, don't define
- struct smart_any_cannot_dereference;
-
- // For use in implementing unary operator*
- template<typename T>
- struct deref
- {
- typedef smart_any_cannot_dereference type; // will cause a compile error by default
- };
-
- #ifndef SMART_ANY_PTS
-
- // Old compiler needs extra help
- template<>
- struct fixup_invalid_value<null_t>
- {
- template<typename T> struct rebind { typedef value_const<T> type; };
- };
-
- #else
-
- template<typename T,typename U>
- struct same_type
- {
- static const bool value = false;
- };
-
- template<typename T>
- struct same_type<T,T>
- {
- static const bool value = true;
- };
-
- // Handle reference types
- template<typename T>
- struct deref<T&>
- {
- typedef typename deref<T>::type type;
- };
-
- // Partially specialize for pointer types
- template<typename T>
- struct deref<T*>
- {
- typedef T& type; // The result of dereferencing a T*
- };
-
- // Partially specialize for pointer types
- template<typename T>
- struct deref<T*const>
- {
- typedef typename deref<T*>::type type; // The result of dereferencing a T*
- };
-
- // Partially specialize for pointer types
- template<typename T>
- struct deref<T*volatile>
- {
- typedef typename deref<T*>::type type; // The result of dereferencing a T*
- };
-
- // Partially specialize for pointer types
- template<typename T>
- struct deref<T*const volatile>
- {
- typedef typename deref<T*>::type type; // The result of dereferencing a T*
- };
-
- // Fully specialize for void*
- template<>
- struct deref<void*>
- {
- typedef smart_any_cannot_dereference type; // cannot dereference a void*
- };
-
- // Fully specialize for void const*
- template<>
- struct deref<void const*>
- {
- typedef smart_any_cannot_dereference type; // cannot dereference a void*
- };
-
- // Fully specialize for void volatile*
- template<>
- struct deref<void volatile*>
- {
- typedef smart_any_cannot_dereference type; // cannot dereference a void*
- };
-
- // Fully specialize for void const volatile*
- template<>
- struct deref<void const volatile*>
- {
- typedef smart_any_cannot_dereference type; // cannot dereference a void*
- };
-
- #ifdef _MANAGED
- // Handle reference types
- template<typename T>
- struct deref<T __gc&>
- {
- typedef typename deref<T>::type type;
- };
-
- // Partially specialize for pointer types
- template<typename T>
- struct deref<T __gc*>
- {
- typedef T __gc& type; // The result of dereferencing a T __gc*
- };
-
- // Partially specialize for pointer types
- template<typename T>
- struct deref<T __gc*const>
- {
- typedef typename deref<T __gc*>::type type; // The result of dereferencing a T __gc*
- };
-
- // Partially specialize for pointer types
- template<typename T>
- struct deref<T __gc*volatile>
- {
- typedef typename deref<T __gc*>::type type; // The result of dereferencing a T __gc*
- };
-
- // Partially specialize for pointer types
- template<typename T>
- struct deref<T __gc*const volatile>
- {
- typedef typename deref<T __gc*>::type type; // The result of dereferencing a T __gc*
- };
-
- // Fully specialize for void*
- template<>
- struct deref<System::Void __gc*>
- {
- typedef smart_any_cannot_dereference type; // cannot dereference a System::Void __gc*
- };
-
- // Fully specialize for void const*
- template<>
- struct deref<System::Void const __gc*>
- {
- typedef smart_any_cannot_dereference type; // cannot dereference a System::Void __gc*
- };
-
- // Fully specialize for void volatile*
- template<>
- struct deref<System::Void volatile __gc*>
- {
- typedef smart_any_cannot_dereference type; // cannot dereference a System::Void __gc*
- };
-
- // Fully specialize for void const volatile*
- template<>
- struct deref<System::Void const volatile __gc*>
- {
- typedef smart_any_cannot_dereference type; // cannot dereference a System::Void __gc*
- };
- #endif
-
- // The DECLARE_HANDLE macro in winnt.h defines a handle to be a pointer
- // to a struct containing one member named "unused" of type int. We can
- // use that information to make auto_any safer by disallowing actions like
- // dereferencing a handle or calling delete on a handle.
- template<typename T>
- struct has_unused
- {
- private:
- template<class U,int U::*> struct wrap_t;
- template<typename U> static yes_t check( wrap_t<U,&U::unused>* );
- template<typename U> static no_t __cdecl check( ... );
- public:
- static bool const value = ( sizeof(check<T>(0)) == sizeof(yes_t) );
- };
-
- template<typename T>
- struct is_handle_helper
- {
- static bool const value = ( sizeof(T)==sizeof(int) && has_unused<T>::value );
- };
-
- #ifdef _MANAGED
- template<typename T>
- struct is_handle_helper<T __gc&>
- {
- static bool const value = false;
- };
- #endif
-
- template<>
- struct is_handle_helper<smart_any_cannot_dereference>
- {
- static bool const value = false;
- };
-
- // used to see whether a given type T is a handle type or not.
- template<typename T>
- struct is_handle
- {
- private:
- typedef typename remove_ref<typename deref<T>::type>::type deref_t;
- public:
- static bool const value =
- ( same_type<T,void*>::value || is_handle_helper<deref_t>::value );
- };
- #endif
-
- template<typename T,class close_policy>
- struct safe_types
- {
- typedef T pointer_type;
- typedef typename deref<T>::type reference_type;
-
- static pointer_type to_pointer( T t )
- {
- return t;
- }
- static reference_type to_reference( T t )
- {
- return *t;
- }
- };
-
- #ifdef SMART_ANY_PTS
- template<typename T>
- class no_addref_release : public T
- {
- unsigned long __stdcall AddRef();
- unsigned long __stdcall Release();
- };
-
- // shouldn't be able to call AddRef or Release
- // through a smart COM wrapper
- template<typename T>
- struct safe_types<T*,close_release_com>
- {
- typedef no_addref_release<T>* pointer_type;
- typedef no_addref_release<T>& reference_type;
-
- static pointer_type to_pointer( T* t )
- {
- return static_cast<pointer_type>( t );
- }
- static reference_type to_reference( T* t )
- {
- return *static_cast<pointer_type>( t );
- }
- };
- #endif
-}
-
-// a generic close policy that uses a ptr to a function
-template<typename Fn, Fn Pfn>
-struct close_fun
-{
- template<typename T>
- static void close( T t )
- {
- Pfn( t );
- }
-};
-
-// free an object allocated with new by calling delete
-struct close_delete
-{
- template<typename T>
- static void close( T * p )
- {
- // This will fail only if T is an incomplete type.
- static detail::static_assert<0 != sizeof( T )> const cannot_delete_an_incomplete_type;
-
- #ifdef SMART_ANY_PTS
- // This checks to make sure we're not calling delete on a HANDLE
- static detail::static_assert<!detail::is_handle<T*>::value> const cannot_delete_a_handle;
- #endif
-
- delete p;
- }
-
- #ifdef _MANAGED
- template<typename T>
- static void close( gcroot<T __gc*> const & p )
- {
- delete static_cast<T __gc*>( p );
- }
- #endif
-};
-
-// free an array allocated with new[] by calling delete[]
-struct close_delete_array
-{
- template<typename T>
- static void close( T * p )
- {
- // This will fail only if T is an incomplete type.
- static detail::static_assert<0 != sizeof( T )> const cannot_delete_an_incomplete_type;
-
- #ifdef SMART_ANY_PTS
- // This checks to make sure we're not calling delete on a HANDLE
- static detail::static_assert<!detail::is_handle<T*>::value> const cannot_delete_a_handle;
- #endif
-
- delete [] p;
- }
-
- //#ifdef _MANAGED
- // This is broken because of compiler bugs
- //template<typename T>
- //static void close( gcroot<T __gc* __gc[]> const & p )
- //{
- // delete [] static_cast<T __gc* __gc[]>( p );
- //}
- //#endif
-};
-
-// for releasing a COM object
-struct close_release_com
-{
- template<typename T>
- static void close( T p )
- {
- p->Release();
- }
-};
-
-// for releasing a __gc IDisposable object
-struct close_dispose
-{
- template<typename T>
- static void close( T p )
- {
- p->Dispose();
- }
-};
-
-// some generic invalid_value policies
-
-struct null_t
-{
- template<typename T>
- operator T const() const
- {
- return detail::null_helper<detail::is_managed<T>::value>::template inner<T>::get();
- }
-};
-
-template<typename T,T value>
-struct value_const
-{
- operator T const() const
- {
- return value;
- }
-};
-
-template<typename T,T const* value_ptr>
-struct value_const_ptr
-{
- operator T const&() const
- {
- return *value_ptr;
- }
-};
-
-#ifdef SMART_ANY_PTS
-template<typename T, T const& value>
-struct value_ref
-{
- operator T const&() const
- {
- return value;
- }
-};
-#endif
-
-#endif // SMART_ANY_FWD
-
-
-//
-// Define some other useful close polcies
-//
-
-#if defined(_INC_STDLIB) | defined(_INC_MALLOC)
-typedef void (__cdecl *pfn_free_t)( void* );
-typedef close_fun<pfn_free_t,static_cast<pfn_free_t>(&free)> close_free;
-#endif
-
-#if defined(_INC_STDIO) & !defined(SMART_CLOSE_FILE_PTR)
-# define SMART_CLOSE_FILE_PTR
- // don't close a FILE* if it is stdin, stdout or stderr
- struct close_file_ptr
- {
- static void close( FILE * pfile )
- {
- if( pfile != stdin && pfile != stdout && pfile != stderr )
- {
- fclose( pfile );
- }
- }
- };
-#endif
-
-#ifdef _WINDOWS_
-
-# ifndef SMART_VIRTUAL_FREE
-# define SMART_VIRTUAL_FREE
- // free memory allocated with VirtualAlloc
- struct close_virtual_free
- {
- static void close( void * p )
- {
- ::VirtualFree( p, 0, MEM_RELEASE );
- }
- };
-# endif
-
- typedef close_fun<BOOL (__stdcall *)( HANDLE ),CloseHandle> close_handle;
- typedef close_fun<BOOL (__stdcall *)( HANDLE ),FindClose> close_find;
- typedef close_fun<BOOL (__stdcall *)( HANDLE ),FindCloseChangeNotification> close_find_change_notification;
- typedef close_fun<BOOL (__stdcall *)( HINSTANCE ),FreeLibrary> close_library;
- typedef close_fun<LONG (__stdcall *)( HKEY ),RegCloseKey> close_regkey;
- typedef close_fun<BOOL (__stdcall *)( LPCVOID ),UnmapViewOfFile> close_file_view;
- typedef close_fun<BOOL (__stdcall *)( HICON ),DestroyIcon> close_hicon;
- typedef close_fun<BOOL (__stdcall *)( HGDIOBJ ),DeleteObject> close_hgdiobj;
- typedef close_fun<BOOL (__stdcall *)( HACCEL ),DestroyAcceleratorTable> close_haccel;
- typedef close_fun<BOOL (__stdcall *)( HDC ),DeleteDC> close_hdc;
- typedef close_fun<BOOL (__stdcall *)( HMENU ),DestroyMenu> close_hmenu;
- typedef close_fun<BOOL (__stdcall *)( HCURSOR ),DestroyCursor> close_hcursor;
- typedef close_fun<BOOL (__stdcall *)( HWND ),DestroyWindow> close_window;
- typedef close_fun<BOOL (__stdcall *)( HANDLE ),HeapDestroy> close_heap_destroy;
- typedef close_fun<HLOCAL (__stdcall *)( HLOCAL ),LocalFree> close_local_free;
- typedef close_fun<BOOL (__stdcall *)( HDESK ),CloseDesktop> close_hdesk;
- typedef close_fun<BOOL (__stdcall *)( HHOOK ),UnhookWindowsHookEx> close_hhook;
- typedef close_fun<BOOL (__stdcall *)( HWINSTA ),CloseWindowStation> close_hwinsta;
- typedef close_fun<BOOL (__stdcall *)( HANDLE ),DeregisterEventSource> close_event_source;
- typedef close_fun<HGLOBAL (__stdcall *)( HGLOBAL ),GlobalFree> close_global_free;
-
- typedef value_const<HANDLE,INVALID_HANDLE_VALUE> invalid_handle_t;
-#endif
-
-#ifdef _OLEAUTO_H_
- typedef close_fun<void (__stdcall *)(BSTR),SysFreeString> close_bstr;
-#endif
-
-#ifdef __MSGQUEUE_H__
- typedef close_fun<BOOL (__stdcall *)(HANDLE),CloseMsgQueue> close_msg_queue;
-#endif
-
-#if defined(_WININET_) | defined(_DUBINET_)
- typedef close_fun<BOOL (__stdcall *)(HINTERNET),InternetCloseHandle> close_hinternet;
-#endif
-
-#ifdef _RAS_H_
- typedef close_fun<DWORD (__stdcall *)( HRASCONN ),RasHangUp> close_hrasconn;
-#endif
-
-#if defined(__RPCDCE_H__) & !defined(SMART_ANY_RPC)
-# define SMART_ANY_RPC
- // for releaseing an rpc binding
- struct close_rpc_binding
- {
- static void close( RPC_BINDING_HANDLE & h )
- {
- ::RpcBindingFree( &h );
- }
- };
- // for releaseing an rpc binding vector
- struct close_rpc_vector
- {
- static void close( RPC_BINDING_VECTOR __RPC_FAR * & p )
- {
- ::RpcBindingVectorFree( &p );
- }
- };
- // for releasing a RPC string
- struct close_rpc_string
- {
- static void close( unsigned char __RPC_FAR * & p )
- {
- ::RpcStringFreeA(&p);
- }
- static void close( unsigned short __RPC_FAR * & p )
- {
- ::RpcStringFreeW(&p);
- }
- };
-#endif
-
-#ifdef _WINSVC_
- typedef close_fun<BOOL (__stdcall *)( SC_HANDLE ),CloseServiceHandle> close_service;
- typedef close_fun<BOOL (__stdcall *)( SC_LOCK ),UnlockServiceDatabase> unlock_service;
-#endif
-
-#ifdef _WINSOCKAPI_
- typedef int (__stdcall *pfn_closock_t)( SOCKET );
- typedef close_fun<pfn_closock_t,static_cast<pfn_closock_t>(&closesocket)> close_socket;
- typedef value_const<SOCKET,INVALID_SOCKET> invalid_socket_t;
-#endif
-
-#ifdef _OBJBASE_H_
- // For use when releasing memory allocated with CoTaskMemAlloc
- typedef close_fun<void (__stdcall*)( LPVOID ),CoTaskMemFree> close_co_task_free;
-#endif
-
-
-//
-// Below are useful smart typedefs for some common Windows/CRT resource types.
-//
-
-#undef DECLARE_SMART_ANY_TYPEDEFS_STDIO
-#undef DECLARE_SMART_ANY_TYPEDEFS_WINDOWS
-#undef DECLARE_SMART_ANY_TYPEDEFS_OLEAUTO
-#undef DECLARE_SMART_ANY_TYPEDEFS_MSGQUEUE
-#undef DECLARE_SMART_ANY_TYPEDEFS_WININET
-#undef DECLARE_SMART_ANY_TYPEDEFS_RAS
-#undef DECLARE_SMART_ANY_TYPEDEFS_RPCDCE
-#undef DECLARE_SMART_ANY_TYPEDEFS_WINSVC
-#undef DECLARE_SMART_ANY_TYPEDEFS_WINSOCKAPI
-#undef DECLARE_SMART_ANY_TYPEDEFS_OBJBASE
-
-#define DECLARE_SMART_ANY_TYPEDEFS_STDIO(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_WINDOWS(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_OLEAUTO(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_MSGQUEUE(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_WININET(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_RAS(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_RPCDCE(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_WINSVC(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_WINSOCKAPI(prefix)
-#define DECLARE_SMART_ANY_TYPEDEFS_OBJBASE(prefix)
-
-#ifdef _INC_STDIO
-# undef DECLARE_SMART_ANY_TYPEDEFS_STDIO
-# define DECLARE_SMART_ANY_TYPEDEFS_STDIO(prefix) \
- typedef prefix ## _any<FILE*,close_file_ptr> prefix ## _file_ptr;
-#endif
-
-#ifdef _WINDOWS_
-# undef DECLARE_SMART_ANY_TYPEDEFS_WINDOWS
-# define DECLARE_SMART_ANY_TYPEDEFS_WINDOWS(prefix) \
- typedef prefix ## _any<HKEY,close_regkey> prefix ## _hkey; \
- typedef prefix ## _any<HANDLE,close_find,invalid_handle_t> prefix ## _hfind; \
- typedef prefix ## _any<HANDLE,close_find_change_notification,invalid_handle_t> prefix ## _hfind_change_notification; \
- typedef prefix ## _any<HANDLE,close_handle,invalid_handle_t> prefix ## _hfile; \
- typedef prefix ## _any<HANDLE,close_handle,invalid_handle_t,1> prefix ## _communications_device; \
- typedef prefix ## _any<HANDLE,close_handle,invalid_handle_t,2> prefix ## _console_input; \
- typedef prefix ## _any<HANDLE,close_handle,invalid_handle_t,3> prefix ## _console_input_buffer; \
- typedef prefix ## _any<HANDLE,close_handle,invalid_handle_t,4> prefix ## _console_output; \
- typedef prefix ## _any<HANDLE,close_handle,invalid_handle_t,5> prefix ## _mailslot; \
- typedef prefix ## _any<HANDLE,close_handle,invalid_handle_t,6> prefix ## _pipe; \
- typedef prefix ## _any<HANDLE,close_handle> prefix ## _handle; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,1> prefix ## _access_token; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,2> prefix ## _event; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,3> prefix ## _file_mapping; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,4> prefix ## _job; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,5> prefix ## _mutex; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,6> prefix ## _process; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,7> prefix ## _semaphore; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,8> prefix ## _thread; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,9> prefix ## _timer; \
- typedef prefix ## _any<HANDLE,close_handle,null_t,10> prefix ## _completion_port; \
- typedef prefix ## _any<HDC,close_hdc> prefix ## _hdc; \
- typedef prefix ## _any<HICON,close_hicon> prefix ## _hicon; \
- typedef prefix ## _any<HMENU,close_hmenu> prefix ## _hmenu; \
- typedef prefix ## _any<HCURSOR,close_hcursor> prefix ## _hcursor; \
- typedef prefix ## _any<HPEN,close_hgdiobj,null_t,1> prefix ## _hpen; \
- typedef prefix ## _any<HRGN,close_hgdiobj,null_t,2> prefix ## _hrgn; \
- typedef prefix ## _any<HFONT,close_hgdiobj,null_t,3> prefix ## _hfont; \
- typedef prefix ## _any<HBRUSH,close_hgdiobj,null_t,4> prefix ## _hbrush; \
- typedef prefix ## _any<HBITMAP,close_hgdiobj,null_t,5> prefix ## _hbitmap; \
- typedef prefix ## _any<HPALETTE,close_hgdiobj,null_t,6> prefix ## _hpalette; \
- typedef prefix ## _any<HACCEL,close_haccel> prefix ## _haccel; \
- typedef prefix ## _any<HWND,close_window> prefix ## _window; \
- typedef prefix ## _any<HINSTANCE,close_library> prefix ## _library; \
- typedef prefix ## _any<LPVOID,close_file_view> prefix ## _file_view; \
- typedef prefix ## _any<LPVOID,close_virtual_free> prefix ## _virtual_ptr; \
- typedef prefix ## _any<HANDLE,close_heap_destroy> prefix ## _heap; \
- typedef prefix ## _any<HLOCAL,close_local_free> prefix ## _hlocal; \
- typedef prefix ## _any<HDESK,close_hdesk> prefix ## _hdesk; \
- typedef prefix ## _any<HHOOK,close_hhook> prefix ## _hhook; \
- typedef prefix ## _any<HWINSTA,close_hwinsta> prefix ## _hwinsta; \
- typedef prefix ## _any<HANDLE,close_event_source> prefix ## _event_source; \
- typedef prefix ## _any<HGLOBAL,close_global_free> prefix ## _hglobal;
-#endif
-
-//
-// Define some other useful typedefs
-//
-
-#ifdef _OLEAUTO_H_
-# undef DECLARE_SMART_ANY_TYPEDEFS_OLEAUTO
-# define DECLARE_SMART_ANY_TYPEDEFS_OLEAUTO(prefix) \
- typedef prefix ## _any<BSTR,close_bstr> prefix ## _bstr;
-#endif
-
-#ifdef __MSGQUEUE_H__
-# undef DECLARE_SMART_ANY_TYPEDEFS_MSGQUEUE
-# define DECLARE_SMART_ANY_TYPEDEFS_MSGQUEUE(prefix) \
- typedef prefix ## _any<HANDLE,close_msg_queue> prefix ## _msg_queue;
-#endif
-
-#if defined(_WININET_) | defined(_DUBINET_)
-# undef DECLARE_SMART_ANY_TYPEDEFS_WININET
-# define DECLARE_SMART_ANY_TYPEDEFS_WININET(prefix) \
- typedef prefix ## _any<HINTERNET,close_hinternet> prefix ## _hinternet;
-#endif
-
-#ifdef _RAS_H_
-# undef DECLARE_SMART_ANY_TYPEDEFS_RAS
-# define DECLARE_SMART_ANY_TYPEDEFS_RAS(prefix) \
- typedef prefix ## _any<HRASCONN,close_hrasconn> prefix ## _hrasconn;
-#endif
-
-#ifdef __RPCDCE_H__
-# undef DECLARE_SMART_ANY_TYPEDEFS_RPCDCE
-# ifdef UNICODE
-# define DECLARE_SMART_ANY_TYPEDEFS_RPCDCE(prefix) \
- typedef prefix ## _any<RPC_BINDING_HANDLE,close_rpc_binding> prefix ## _rpc_binding; \
- typedef prefix ## _any<RPC_BINDING_VECTOR __RPC_FAR*,close_rpc_vector> prefix ## _rpc_binding_vector; \
- typedef prefix ## _any<unsigned char __RPC_FAR*,close_rpc_string> prefix ## _rpc_string_A; \
- typedef prefix ## _any<unsigned short __RPC_FAR*,close_rpc_string> prefix ## _rpc_string_W; \
- typedef prefix ## _rpc_string_W prefix ## _rpc_string;
-# else
-# define DECLARE_SMART_ANY_TYPEDEFS_RPCDCE(prefix) \
- typedef prefix ## _any<RPC_BINDING_HANDLE,close_rpc_binding> prefix ## _rpc_binding; \
- typedef prefix ## _any<RPC_BINDING_VECTOR __RPC_FAR*,close_rpc_vector> prefix ## _rpc_binding_vector; \
- typedef prefix ## _any<unsigned char __RPC_FAR*,close_rpc_string> prefix ## _rpc_string_A; \
- typedef prefix ## _any<unsigned short __RPC_FAR*,close_rpc_string> prefix ## _rpc_string_W; \
- typedef prefix ## _rpc_string_A prefix ## _rpc_string;
-# endif
-#endif
-
-#ifdef _WINSVC_
-# undef DECLARE_SMART_ANY_TYPEDEFS_WINSVC
-# define DECLARE_SMART_ANY_TYPEDEFS_WINSVC(prefix) \
- typedef prefix ## _any<SC_HANDLE,close_service> prefix ## _service; \
- typedef prefix ## _any<SC_LOCK,unlock_service> prefix ## _service_lock;
-#endif
-
-#ifdef _WINSOCKAPI_
-# undef DECLARE_SMART_ANY_TYPEDEFS_WINSOCKAPI
-# define DECLARE_SMART_ANY_TYPEDEFS_WINSOCKAPI(prefix) \
- typedef prefix ## _any<SOCKET,close_socket,invalid_socket_t> prefix ## _socket;
-#endif
-
-#if defined(_OBJBASE_H_) & !defined(SMART_ANY_CO_INIT)
-# define SMART_ANY_CO_INIT
- inline HRESULT smart_co_init_helper( DWORD dwCoInit )
- {
- (void) dwCoInit;
-# if (_WIN32_WINNT >= 0x0400 ) | defined(_WIN32_DCOM)
- return ::CoInitializeEx(0,dwCoInit);
-# else
- return ::CoInitialize(0);
-# endif
- }
- inline void smart_co_uninit_helper( HRESULT hr )
- {
- if (SUCCEEDED(hr))
- ::CoUninitialize();
- }
- typedef close_fun<void(*)(HRESULT),smart_co_uninit_helper> close_co;
- typedef value_const<HRESULT,CO_E_NOTINITIALIZED> co_not_init;
-# undef DECLARE_SMART_ANY_TYPEDEFS_OBJBASE
-# define DECLARE_SMART_ANY_TYPEDEFS_OBJBASE(prefix) \
- typedef prefix ## _any<LPVOID,close_co_task_free> prefix ## _co_task_ptr;
-#endif
-
-
-#define DECLARE_SMART_ANY_TYPEDEFS(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_STDIO(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_WINDOWS(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_OLEAUTO(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_MSGQUEUE(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_WININET(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_RAS(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_RPCDCE(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_WINSVC(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_WINSOCKAPI(prefix) \
- DECLARE_SMART_ANY_TYPEDEFS_OBJBASE(prefix)
« no previous file with comments | « third_party/smartany/shared_any.cc ('k') | tools/ApplyTag/apply_tag_tool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698