Skip to content

Commit 254143a

Browse files
author
전상현
committed
Merge branch 'master' of https://github.com/profrog-jeon/cppcore
2 parents 45339c0 + bf40f61 commit 254143a

File tree

9 files changed

+55
-26
lines changed

9 files changed

+55
-26
lines changed

Lib/Win32ReleaseMT/cryptlib.lib

Lines changed: 0 additions & 3 deletions
This file was deleted.
-92.9 MB
Binary file not shown.

Lib/x64MacOSXRelease/libcryptopp.a

-47.6 MB
Binary file not shown.

Lib/x64ReleaseMT/cryptlib.lib

Lines changed: 0 additions & 3 deletions
This file was deleted.

Lib/x64UbuntuRelease/libcryptopp.a

-93.4 MB
Binary file not shown.

Src/200_Common/RingBuffer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ namespace core
2929
m_vecBuffer.clear();
3030
}
3131

32-
LPBYTE CRingBuffer::Alloc(size_t tSize)
32+
LPBYTE CRingBuffer::Alloc(size_t tSize, size_t tReservedSize)
3333
{
3434
CCriticalSection::Owner lock(m_csPos);
3535

3636
size_t tPrePos = m_tPos;
3737

3838
m_tPos += tSize;
39-
if (m_tPos <= m_vecBuffer.size())
39+
if ((m_tPos + tReservedSize) <= m_vecBuffer.size())
4040
return &m_vecBuffer[tPrePos];
4141

4242
m_tPos = tSize;

Src/200_Common/RingBuffer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ namespace core
1818
ECODE Create(size_t tSize);
1919
void Destroy(void);
2020

21-
LPBYTE Alloc(size_t tSize);
21+
LPBYTE Alloc(size_t tSize, size_t tReservedSize = 0);
2222
};
2323
}

Test/CommonTest/CommonTestA.vcxproj

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,51 +38,51 @@
3838
<ProjectGuid>{B847CDA0-8948-4608-8575-C69353A6C50F}</ProjectGuid>
3939
<RootNamespace>MyCommonTest</RootNamespace>
4040
<Keyword>Win32Proj</Keyword>
41-
<WindowsTargetPlatformVersion>7.0</WindowsTargetPlatformVersion>
41+
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
4242
</PropertyGroup>
4343
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
4444
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'" Label="Configuration">
4545
<ConfigurationType>Application</ConfigurationType>
46-
<PlatformToolset>v141_xp</PlatformToolset>
46+
<PlatformToolset>v142</PlatformToolset>
4747
<CharacterSet>MultiByte</CharacterSet>
4848
<WholeProgramOptimization>true</WholeProgramOptimization>
4949
</PropertyGroup>
5050
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMT|Win32'" Label="Configuration">
5151
<ConfigurationType>Application</ConfigurationType>
52-
<PlatformToolset>v141_xp</PlatformToolset>
52+
<PlatformToolset>v142</PlatformToolset>
5353
<CharacterSet>MultiByte</CharacterSet>
5454
</PropertyGroup>
5555
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
5656
<ConfigurationType>Application</ConfigurationType>
57-
<PlatformToolset>v141_xp</PlatformToolset>
57+
<PlatformToolset>v142</PlatformToolset>
5858
<CharacterSet>MultiByte</CharacterSet>
5959
<WholeProgramOptimization>true</WholeProgramOptimization>
6060
</PropertyGroup>
6161
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
6262
<ConfigurationType>Application</ConfigurationType>
63-
<PlatformToolset>v141_xp</PlatformToolset>
63+
<PlatformToolset>v142</PlatformToolset>
6464
<CharacterSet>MultiByte</CharacterSet>
6565
</PropertyGroup>
6666
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'" Label="Configuration">
6767
<ConfigurationType>Application</ConfigurationType>
68-
<PlatformToolset>v141_xp</PlatformToolset>
68+
<PlatformToolset>v142</PlatformToolset>
6969
<CharacterSet>MultiByte</CharacterSet>
7070
<WholeProgramOptimization>true</WholeProgramOptimization>
7171
</PropertyGroup>
7272
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMT|x64'" Label="Configuration">
7373
<ConfigurationType>Application</ConfigurationType>
74-
<PlatformToolset>v141_xp</PlatformToolset>
74+
<PlatformToolset>v142</PlatformToolset>
7575
<CharacterSet>MultiByte</CharacterSet>
7676
</PropertyGroup>
7777
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
7878
<ConfigurationType>Application</ConfigurationType>
79-
<PlatformToolset>v141_xp</PlatformToolset>
79+
<PlatformToolset>v142</PlatformToolset>
8080
<CharacterSet>MultiByte</CharacterSet>
8181
<WholeProgramOptimization>true</WholeProgramOptimization>
8282
</PropertyGroup>
8383
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
8484
<ConfigurationType>Application</ConfigurationType>
85-
<PlatformToolset>v141_xp</PlatformToolset>
85+
<PlatformToolset>v142</PlatformToolset>
8686
<CharacterSet>MultiByte</CharacterSet>
8787
</PropertyGroup>
8888
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -169,7 +169,7 @@
169169
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
170170
</ClCompile>
171171
<Link>
172-
<AdditionalDependencies>cryptlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
172+
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
173173
<AdditionalLibraryDirectories>../../Lib/$(Platform)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
174174
<GenerateDebugInformation>true</GenerateDebugInformation>
175175
<SubSystem>Console</SubSystem>
@@ -192,7 +192,7 @@
192192
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
193193
</ClCompile>
194194
<Link>
195-
<AdditionalDependencies>cryptlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
195+
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
196196
<AdditionalLibraryDirectories>../../Lib/$(Platform)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
197197
<GenerateDebugInformation>true</GenerateDebugInformation>
198198
<SubSystem>Console</SubSystem>
@@ -212,7 +212,7 @@
212212
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
213213
</ClCompile>
214214
<Link>
215-
<AdditionalDependencies>cryptlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
215+
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
216216
<AdditionalLibraryDirectories>../../Lib/$(Platform)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
217217
<GenerateDebugInformation>true</GenerateDebugInformation>
218218
<SubSystem>Console</SubSystem>
@@ -237,7 +237,7 @@
237237
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
238238
</ClCompile>
239239
<Link>
240-
<AdditionalDependencies>cryptlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
240+
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
241241
<AdditionalLibraryDirectories>../../Lib/$(Platform)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
242242
<GenerateDebugInformation>true</GenerateDebugInformation>
243243
<SubSystem>Console</SubSystem>
@@ -259,7 +259,7 @@
259259
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
260260
</ClCompile>
261261
<Link>
262-
<AdditionalDependencies>cryptlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
262+
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
263263
<AdditionalLibraryDirectories>../../Lib/$(Platform)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
264264
<GenerateDebugInformation>true</GenerateDebugInformation>
265265
<SubSystem>Console</SubSystem>
@@ -282,7 +282,7 @@
282282
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
283283
</ClCompile>
284284
<Link>
285-
<AdditionalDependencies>cryptlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
285+
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
286286
<AdditionalLibraryDirectories>../../Lib/$(Platform)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
287287
<GenerateDebugInformation>true</GenerateDebugInformation>
288288
<SubSystem>Console</SubSystem>
@@ -302,7 +302,7 @@
302302
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
303303
</ClCompile>
304304
<Link>
305-
<AdditionalDependencies>cryptlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
305+
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
306306
<AdditionalLibraryDirectories>../../Lib/$(Platform)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
307307
<GenerateDebugInformation>true</GenerateDebugInformation>
308308
<SubSystem>Console</SubSystem>
@@ -327,7 +327,7 @@
327327
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
328328
</ClCompile>
329329
<Link>
330-
<AdditionalDependencies>cryptlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
330+
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
331331
<AdditionalLibraryDirectories>../../Lib/$(Platform)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
332332
<GenerateDebugInformation>true</GenerateDebugInformation>
333333
<SubSystem>Console</SubSystem>
@@ -345,6 +345,7 @@
345345
<ClCompile Include="LockFreeQueueTest.cpp" />
346346
<ClCompile Include="MemoryAccessTest.cpp" />
347347
<ClCompile Include="MutexTest.cpp" />
348+
<ClCompile Include="RingBufferTest.cpp" />
348349
<ClCompile Include="SafeQueueTest.cpp" />
349350
<ClCompile Include="SyncQueueTest.cpp" />
350351
<ClCompile Include="TextReaderTest.cpp" />

Test/CommonTest/RingBufferTest.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#include "stdafx.h"
2+
3+
TEST(RingBufferTest, CircularUsage)
4+
{
5+
CRingBuffer buffer;
6+
EXPECT_EQ(EC_SUCCESS, buffer.Create(1024));
7+
8+
LPBYTE pBuffer1 = buffer.Alloc(512);
9+
LPBYTE pBuffer2 = buffer.Alloc(512);
10+
EXPECT_EQ(pBuffer1, buffer.Alloc(512));
11+
buffer.Destroy();
12+
}
13+
14+
TEST(RingBufferTest, ReservedAlloc)
15+
{
16+
CRingBuffer buffer;
17+
EXPECT_EQ(EC_SUCCESS, buffer.Create(1024));
18+
19+
LPBYTE pBuffer1 = buffer.Alloc(512);
20+
EXPECT_NE(pBuffer1, buffer.Alloc(256, 256));
21+
EXPECT_NE(pBuffer1, buffer.Alloc(256));
22+
EXPECT_EQ(pBuffer1, buffer.Alloc(256));
23+
buffer.Destroy();
24+
}
25+
26+
TEST(RingBufferTest, ReservedAllocReuse)
27+
{
28+
CRingBuffer buffer;
29+
EXPECT_EQ(EC_SUCCESS, buffer.Create(1024));
30+
31+
LPBYTE pBuffer1 = buffer.Alloc(512);
32+
EXPECT_EQ(pBuffer1, buffer.Alloc(512, 512));
33+
buffer.Destroy();
34+
}

0 commit comments

Comments
 (0)