Skip to content
This repository was archived by the owner on Apr 8, 2025. It is now read-only.

Commit 0d0e4d8

Browse files
committed
Merge pull request #19 from hanzhumsft/master
Azure Storage Client Library for C++ v0.5.0
2 parents 7697af4 + 9f41af4 commit 0d0e4d8

File tree

68 files changed

+2049
-468
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+2049
-468
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ App_Data/*.ldf
163163
# Microsoft Fakes
164164
FakesAssemblies/
165165

166+
# Nuget packages
167+
*.nupkg
168+
166169
# =========================
167170
# Windows detritus
168171
# =========================
@@ -176,3 +179,7 @@ Desktop.ini
176179

177180
# Recycle Bin used on file shares
178181
$RECYCLE.BIN/
182+
183+
# build folders under Linux
184+
Microsoft.WindowsAzure.Storage/build.*/
185+

BreakingChanges.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
Azure Storage Client Library for C++
22
History of Breaking Changes
33

4+
Breaking Changes in v0.5:
5+
- Added parameter sequence_number to the following functions:
6+
- cloud_page_blob::create_async
7+
- cloud_page_blob::open_write_async
8+
- cloud_page_blob::upload_from_stream_async
9+
- cloud_page_blob::upload_from_file_async
10+
- cloud_page_blob::create
11+
- cloud_page_blob::open_write
12+
- cloud_page_blob::upload_from_stream
13+
- cloud_page_blob::upload_from_file
14+
- The client checks blob lease times and throws std::invalid_argument for invalid lease times. Previously, this would have been checked on the service
15+
and azure::storage::storage_exception would have been thrown.
16+
417
Breaking Changes in v0.4:
518
- Upgraded Casablanca dependency to 2.3.0
619
- Changed the exception type in some cases if you upload a blob from a seekable stream but the stream is too short for the desired blob length.

Changelog.txt

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,31 @@
11
Azure Storage Client Library for C++
22
History of Changes
33

4+
Changes in v0.5:
5+
- Default REST API version is 2014-02-14
6+
- Added parameter sequence_number to the following functions:
7+
- cloud_page_blob::create_async
8+
- cloud_page_blob::open_write_async
9+
- cloud_page_blob::upload_from_stream_async
10+
- cloud_page_blob::upload_from_file_async
11+
- cloud_page_blob::create
12+
- cloud_page_blob::open_write
13+
- cloud_page_blob::upload_from_stream
14+
- cloud_page_blob::upload_from_file
15+
- The client checks blob lease times and throws std::invalid_argument for invalid lease times. Previously, this would have been checked on the service and azure::storage::storage_exception would have been thrown.
16+
- Improvements on error handling:
17+
- azure::storage::storage_exception now has inner_exception populated with the actual underlying exception thrown
18+
- azure::storage::storage_exception now has more information about errors on storage service side
19+
- was/error_code_strings.h is added including messages for all possible error codes from storage service
20+
- Improvements on Unit Tests:
21+
- All test cases now print out test name and client reqeust ID
22+
- Added new cases for containers listing and continuation token
23+
- Unit Test configuraiton file is copied to output directory via CMake now, so no need to copy it manually under Linux
24+
- Several fixes for bugs:
25+
- Cannot generate SAS tokens for tables with upper-case letters in table name
26+
- cloud_blob_istreambuf and cloud_blob_ostreambuf is set to a wrong position after seek() method is called.
27+
- Content-MD5 header is incorrectly set when sending Put Page requests with page-write set to clear
28+
429
Changes in v0.4:
530
- Now supports building on Linux
631
- Added http_buffer_size request option to control the internal buffer size used in the HTTP layer when downloading data. The default size is 64KB.
@@ -10,9 +35,9 @@ Changes in v0.4:
1035
- Fixed incorrect initialization of some members in the cloud_blob_container_properties and retry_info classes.
1136
- Added a default of 24 days for a maximum execution time for an operation
1237
- Changed the exception type if you upload a blob from a seekable stream but the stream is too short for the desired blob length.
13-
- Used to throw azure::storage::storage_exception in some cases, now throws std::invalid_argument always.
14-
- Now checks for this case explicitly before the upload is started.
15-
- Non-seekable streams still throw std::invalid_argument as before.
38+
- Used to throw azure::storage::storage_exception in some cases, now throws std::invalid_argument always.
39+
- Now checks for this case explicitly before the upload is started.
40+
- Non-seekable streams still throw std::invalid_argument as before.
1641
- Fixed several bugs, including incorrect uses of std::move and compile-time differences between Visual Studio and g++.
1742
- Added client request ID into log lines.
1843
- Upgraded Casablanca dependency to 2.3.0
@@ -40,10 +65,10 @@ Changes in v0.3:
4065
- Removed the constness from the return values of filter_string and select_columns functions in table_query class.
4166
- Changed many functions to accept pass-by-value arguments to support move semantics.
4267
- Changed many functions to accept pass-by-reference arguments or return references as a performance improvement.
43-
- Made some constructors explicit to avoid implicit conversions. This affects these classes:
44-
canonicalizer, shared_key_blob_queue_canonicalizer, shared_key_lite_blob_queue_canonicalizer, shared_key_table_canonicalizer, shared_key_lite_table_canonicalizer,
45-
sas_authentication_handler, shared_key_authentication_handler, continuation_token, retry_info, retry_policy, cloud_queue_message, cloud_queue_client,
46-
basic_common_retry_policy, cloud_client
68+
- Made some constructors explicit to avoid implicit conversions. This affects these classes:
69+
canonicalizer, shared_key_blob_queue_canonicalizer, shared_key_lite_blob_queue_canonicalizer, shared_key_table_canonicalizer,
70+
shared_key_lite_table_canonicalizer, sas_authentication_handler, shared_key_authentication_handler, continuation_token,
71+
retry_info, retry_policy, cloud_queue_message, cloud_queue_client, basic_common_retry_policy, cloud_client
4772
- Major performance improvement when executing many requests in parallel.
4873
- Minor bug fixes and performance improvements.
4974

Microsoft.WindowsAzure.Storage.autopkg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
nuget {
22
nuspec {
33
id = wastorage;
4-
version: 0.4.0-preview;
4+
version: 0.5.0-preview;
55
title: Microsoft Azure Storage Client Library for C++;
66
authors: {Microsoft Corporation};
77
owners: {Microsoft Corporation};

Microsoft.WindowsAzure.Storage/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,4 @@ set(AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARIES} ${Boo
9999
include_directories(${AZURESTORAGE_INCLUDE_DIRS})
100100

101101
add_subdirectory(src)
102-
#add_subdirectory(tests)
102+
#add_subdirectory(tests)

Microsoft.WindowsAzure.Storage/Microsoft.WindowsAzure.Storage.v120.vcxproj

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
<Link>
112112
<SubSystem>Windows</SubSystem>
113113
<GenerateDebugInformation>true</GenerateDebugInformation>
114-
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
114+
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
115115
</Link>
116116
</ItemDefinitionGroup>
117117
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -129,7 +129,7 @@
129129
<Link>
130130
<SubSystem>Windows</SubSystem>
131131
<GenerateDebugInformation>true</GenerateDebugInformation>
132-
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
132+
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
133133
</Link>
134134
</ItemDefinitionGroup>
135135
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -152,7 +152,7 @@
152152
<GenerateDebugInformation>true</GenerateDebugInformation>
153153
<EnableCOMDATFolding>true</EnableCOMDATFolding>
154154
<OptimizeReferences>true</OptimizeReferences>
155-
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
155+
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
156156
</Link>
157157
</ItemDefinitionGroup>
158158
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -175,7 +175,7 @@
175175
<GenerateDebugInformation>true</GenerateDebugInformation>
176176
<EnableCOMDATFolding>true</EnableCOMDATFolding>
177177
<OptimizeReferences>true</OptimizeReferences>
178-
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
178+
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
179179
</Link>
180180
</ItemDefinitionGroup>
181181
<ItemGroup>
@@ -184,6 +184,7 @@
184184
<ClInclude Include="includes\was\blob.h" />
185185
<ClInclude Include="includes\was\common.h" />
186186
<ClInclude Include="includes\was\core.h" />
187+
<ClInclude Include="includes\was\error_code_strings.h" />
187188
<ClInclude Include="includes\was\queue.h" />
188189
<ClInclude Include="includes\was\service_client.h" />
189190
<ClInclude Include="includes\was\storage_account.h" />

Microsoft.WindowsAzure.Storage/Microsoft.WindowsAzure.Storage.v120.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@
9999
<ClInclude Include="includes\wascore\hashing.h">
100100
<Filter>Header Files</Filter>
101101
</ClInclude>
102+
<ClInclude Include="includes\was\error_code_strings.h">
103+
<Filter>Header Files</Filter>
104+
</ClInclude>
102105
</ItemGroup>
103106
<ItemGroup>
104107
<ClCompile Include="src\async_semaphore.cpp">

Microsoft.WindowsAzure.Storage/Microsoft.WindowsAzure.Storage.vcxproj

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
<Link>
112112
<SubSystem>Windows</SubSystem>
113113
<GenerateDebugInformation>true</GenerateDebugInformation>
114-
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
114+
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
115115
</Link>
116116
</ItemDefinitionGroup>
117117
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -129,7 +129,7 @@
129129
<Link>
130130
<SubSystem>Windows</SubSystem>
131131
<GenerateDebugInformation>true</GenerateDebugInformation>
132-
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
132+
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
133133
</Link>
134134
</ItemDefinitionGroup>
135135
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -152,7 +152,7 @@
152152
<GenerateDebugInformation>true</GenerateDebugInformation>
153153
<EnableCOMDATFolding>true</EnableCOMDATFolding>
154154
<OptimizeReferences>true</OptimizeReferences>
155-
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
155+
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
156156
</Link>
157157
</ItemDefinitionGroup>
158158
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -175,7 +175,7 @@
175175
<GenerateDebugInformation>true</GenerateDebugInformation>
176176
<EnableCOMDATFolding>true</EnableCOMDATFolding>
177177
<OptimizeReferences>true</OptimizeReferences>
178-
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
178+
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
179179
</Link>
180180
</ItemDefinitionGroup>
181181
<ItemGroup>
@@ -184,6 +184,7 @@
184184
<ClInclude Include="includes\was\blob.h" />
185185
<ClInclude Include="includes\was\common.h" />
186186
<ClInclude Include="includes\was\core.h" />
187+
<ClInclude Include="includes\was\error_code_strings.h" />
187188
<ClInclude Include="includes\was\queue.h" />
188189
<ClInclude Include="includes\was\service_client.h" />
189190
<ClInclude Include="includes\was\storage_account.h" />

Microsoft.WindowsAzure.Storage/Microsoft.WindowsAzure.Storage.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@
7878
<ClInclude Include="includes\was\core.h">
7979
<Filter>Header Files</Filter>
8080
</ClInclude>
81+
<ClInclude Include="includes\was\error_code_strings.h">
82+
<Filter>Header Files</Filter>
83+
</ClInclude>
8184
<ClInclude Include="includes\was\queue.h">
8285
<Filter>Header Files</Filter>
8386
</ClInclude>

0 commit comments

Comments
 (0)