Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
7248fbe
feat(Endpoint): construct from a URI
mcakircali Feb 9, 2024
d5dd204
feat(Exception): add PermissionDenied, NotFound, and AlreadyExists
mcakircali May 28, 2024
150fd3b
style(Endpoint): fix spacing
mcakircali May 28, 2024
bcac18a
feat(FAM): add FamConfig
mcakircali May 28, 2024
d3dd2a2
feat(FAM): add FamProperty
mcakircali May 28, 2024
10a3b6e
feat(FAM): add FamSessionDetail
mcakircali May 28, 2024
0db415e
feat(FAM): add FamObjectDetail and FamRegionDetail
mcakircali May 28, 2024
3cf06f2
feat(FAM): add FamObject
mcakircali May 28, 2024
38579c0
feat(FAM): add FamRegion
mcakircali May 28, 2024
8458df7
feat(FAM): add FamSession
mcakircali May 28, 2024
7f611a9
style(FAM): cleanup FamObject
mcakircali May 28, 2024
354a5fb
feat(FAM): add FamName
mcakircali May 28, 2024
bf9583d
feat(FAM): add FamObjectName
mcakircali May 28, 2024
073f94e
feat(FAM): add FamURIManager
mcakircali May 28, 2024
893543e
feat(FAM): add FamHandle
mcakircali May 28, 2024
ddb7c20
feat(FAM): add CMake stuff
mcakircali May 28, 2024
dc7e0e3
feat(FAM): add basic test for region
mcakircali May 28, 2024
7548912
fix(FAM): no name fam objects are valid
mcakircali May 29, 2024
4e3b60a
style(FAM): cleanup fam test
mcakircali May 29, 2024
80c3677
feat(FAM): added FamList and FamIterator
mcakircali May 29, 2024
cb2b1b3
feat(FAM): added test for FamList
mcakircali May 29, 2024
0e7449d
feat(Buffer): added view() method
mcakircali May 29, 2024
a0818cf
chore(git): update gitignore
mcakircali Jun 4, 2024
f114c98
fix(FAM): minor FamList
mcakircali Jun 4, 2024
a71cb1d
Merge branch 'develop' into feature/backend-openfam
mcakircali Jun 4, 2024
0a6ad77
fix(FAM): missing add()
mcakircali Jun 7, 2024
8c4009e
feat(FAM): FamList size and const_iterator
mcakircali Jun 7, 2024
a0d0fa6
feat(FAM): FamList test multi-thread
mcakircali Jun 7, 2024
8075a02
Merge branch 'develop' into feature/backend-openfam
mcakircali Jun 7, 2024
a498404
fix(FAM): logics in name and handle
mcakircali Jun 7, 2024
b4872ab
fix(FAM): FamNode helpers
mcakircali Jun 7, 2024
b174aa5
feat(FAM): atomic subtract and uid/gid property
mcakircali Jun 7, 2024
a73e186
feat(FAM): tests common header
mcakircali Jun 7, 2024
f278107
fix(Buffer): guard for size == 0
mcakircali Jun 12, 2024
1da9735
fix(FAM): session API, remove object and region details
mcakircali Jun 12, 2024
6c0f845
fix(FAM): default session name
mcakircali Jun 12, 2024
19e3424
refactor(FAM)!: type declarations for object/region/session
mcakircali Jun 12, 2024
ee56e11
fix(FAM): API FamObject and FamRegion
mcakircali Jun 12, 2024
a851ba2
fix(FAM): removed FamObjectName, and move all its stuff to FamName
mcakircali Jun 12, 2024
299133f
fix(FAM): FamURIManager uses FamName
mcakircali Jun 12, 2024
7b16c04
fix(FAM): CMakeLists left over FamObjectName
mcakircali Jun 12, 2024
7a14ee9
feat(FAM): FamList and FamListIterator uses non smart ptr
mcakircali Jun 12, 2024
5dfff15
feat(FAM): FamHandle API uses URI
mcakircali Jun 12, 2024
303498e
fix(FAM): FamList tests
mcakircali Jun 12, 2024
41ecc48
fix(FAM): bug in FamName path parsing
mcakircali Jun 12, 2024
b7f07d1
refactor(FAM): cosmetic
mcakircali Jun 12, 2024
783773c
test(FAM): added more region and object API stuff
mcakircali Jun 12, 2024
149e929
Merge branch 'develop' into feature/backend-openfam
mcakircali Jun 12, 2024
2fcedb3
feat(Exceptions): added OutOfStorage exception
mcakircali Jun 13, 2024
07d6e0c
test(FAM): added more object tests
mcakircali Jun 13, 2024
a7a6557
feat(FAM): added version to FamNode header
mcakircali Jun 13, 2024
516e5eb
fix(FAM): added missing find_package in CMakeLists
mcakircali Jun 13, 2024
d1c4d69
style(FAM): cosmetic
mcakircali Jun 13, 2024
5808cbf
Merge branch 'develop' into feature/backend-openfam
mcakircali Jun 13, 2024
774ec73
feat(FAM): added FamNamePath
mcakircali Jun 14, 2024
7425645
test(FAM): ctor URI and Name
mcakircali Jun 14, 2024
e0af456
feat(URI): added Endpoint getter
mcakircali Jun 15, 2024
42b7708
feat(FAM): API for FamNamePath from URI and cleanup
mcakircali Jun 15, 2024
66ec025
test(FAM): fixes API
mcakircali Jun 15, 2024
0e89adc
feat(URI): extended ctor for Endpoint
mcakircali Jun 17, 2024
c80c033
feat(FAM): moved FamPath to seperate source
mcakircali Jun 17, 2024
1726e51
test(FAM): fixed API changes
mcakircali Jun 17, 2024
6eb6b86
test(FAM): added FamPath tests
mcakircali Jun 17, 2024
398b43d
feat(cmake): added FindLibUUID
mcakircali Jun 17, 2024
2645f4b
feat(FAM): generate UUID V5
mcakircali Jun 17, 2024
d3ded3b
fix(FAM): FamHandle API
mcakircali Jun 17, 2024
615619d
feat(FAM): FamName with endpoint member
mcakircali Jul 2, 2024
d64aa53
feat(FAM): small changes to FamName and FamPath
mcakircali Jul 2, 2024
f4fc2aa
fix(FAM): added metadata server exception
mcakircali Jul 5, 2024
65bbbee
feat(FAM): make FamName abstract
mcakircali Jul 5, 2024
b24cdac
feat(FAM): added FamRegionName
mcakircali Jul 5, 2024
e74667e
feat(FAM): added FamObjectName
mcakircali Jul 5, 2024
09526be
fix(FAM): use FamObjectName in FamHandle
mcakircali Jul 5, 2024
8753c73
fix(FAM): use FamObjectName in FamURIManager
mcakircali Jul 5, 2024
1937926
test(FAM): refactor after FamName changes
mcakircali Jul 5, 2024
00d8f3d
Merge branch 'develop' into feature/backend-openfam
mcakircali Jul 5, 2024
9fd48e6
fix(FAM): FamName API
mcakircali Jul 5, 2024
d335320
fix(FAM): cleanup
mcakircali Jul 5, 2024
21cf1ad
feat(FAM): added ctor for FamPath
mcakircali Jul 5, 2024
597ff39
test(FAM): added Name stuff and fixes
mcakircali Jul 5, 2024
57749e0
feat(FAM): get object from region
mcakircali Jul 6, 2024
bf89030
feat(FAM): static uuid method
mcakircali Jul 6, 2024
c9f3e0c
feat(FAM): added object uuid method
mcakircali Jul 6, 2024
5554942
feat(FAM): added uri belongs method
mcakircali Jul 6, 2024
8f4ece7
test(Buffer): fix null check
mcakircali Jul 6, 2024
43aa461
Merge branch 'develop' into feature/backend-openfam
mcakircali Jun 25, 2025
afb3514
fix format
mcakircali Jun 25, 2025
2967c0d
Merge branch 'develop' into feature/backend-openfam
mcakircali Jun 26, 2025
b3d6599
fix libuuid cmake
mcakircali Jun 26, 2025
2a8dfdb
fix(FAM): cmake option
mcakircali Jun 27, 2025
e9c8e74
fix(FAM): includes FamList
mcakircali Jun 27, 2025
cb288c3
fix(FAM): includes FamSession
mcakircali Jun 27, 2025
36978cd
fix(FAM): includes
mcakircali Jun 27, 2025
a49d8f8
fix(FAM): exceptions
mcakircali Jun 27, 2025
63f2616
feat(FAM): added Stream API to FamName
mcakircali Jul 16, 2024
618252f
feat(FAM): added Stream API to FamPath
mcakircali Jul 16, 2024
6822172
fix(FAM): name and path
mcakircali Jun 27, 2025
be3d4e0
fix(FAM): assert handle obj
mcakircali Jul 16, 2024
03f5804
feat(FAM): added uriBelongs to FamRegionName
mcakircali Jul 16, 2024
ae87385
feat(FAM): added buffer() to ObjectName
mcakircali Jul 16, 2024
f71c8e4
test(FAM): API fixes
mcakircali Jul 16, 2024
e0a3c81
feat(FAM): added FamMap (WIP)
mcakircali Oct 30, 2024
64b2055
fix(FAM): Fam_Descriptor_Status issue
mcakircali Nov 6, 2024
1e7db17
fix(FAM): nothrow get session
mcakircali Nov 10, 2024
6b67b1b
feat(FAM): add string support for property
mcakircali Nov 10, 2024
0065db5
fix(FAM): format
mcakircali Jun 27, 2025
3736534
ECKIT-635: add debug log
mcakircali Jul 1, 2025
8c46a9a
ECKIT-635: test includes
mcakircali Jul 1, 2025
a510ff5
ECKIT-635: fix fam include
mcakircali Jul 2, 2025
1466241
ECKIT-635: fix fam test
mcakircali Jul 2, 2025
9c4136a
ECKIT-635: add perm level
mcakircali Jul 2, 2025
792919c
ECKIT-635: fix test
mcakircali Jul 2, 2025
c48544c
ECKIT-635: cleanup
mcakircali Jul 2, 2025
f2c8e43
ECKIT-635: cleanup fam test
mcakircali Jul 2, 2025
2a877e3
ECKIT-635: fix fam map
mcakircali Jul 2, 2025
86351fd
ECKIT-635: fix fam region name
mcakircali Jul 2, 2025
bd54d22
ECKIT-635: fix fam list includes
mcakircali Jul 2, 2025
0e85346
ECKIT-635: fam session
mcakircali Jul 2, 2025
7df9d13
ECKIT-635: fam session to manager
mcakircali Jul 2, 2025
e7934fb
ECKIT-635: reorg fam session manager
mcakircali Jul 2, 2025
6aab8db
ECKIT-635: clean fam region
mcakircali Jul 2, 2025
a4f6485
ECKIT-635: clean fam region test
mcakircali Jul 2, 2025
be57038
Merge branch 'develop' into feature/ECKIT-635_fam-backend-map
mcakircali Jul 2, 2025
92f4e52
ECKIT-635: fix api
mcakircali Jul 2, 2025
4534d29
fix(cmake): bump min ecbuild version
mcakircali Jul 2, 2025
47258aa
Merge branch 'fix/min-ecbuild-version' into feature/ECKIT-635_fam-bac…
mcakircali Jul 2, 2025
023a26b
ECKIT-635: fam region dtor
mcakircali Jul 2, 2025
d90d76e
ECKIT-635: fam handle
mcakircali Jul 2, 2025
354f90e
ECKIT-635: remove ptr fam object
mcakircali Jul 2, 2025
f46d945
ECKIT-635: fix fam text
mcakircali Jul 2, 2025
0255014
ECKIT-635: cleanup fam session
mcakircali Jul 2, 2025
c3b6af2
Merge branch 'fix/cmake-syntax-issue' into feature/ECKIT-635_fam-back…
mcakircali Jul 2, 2025
28dcb94
ECKIT-635: fix leak fam session
mcakircali Jul 2, 2025
455112c
Merge branch 'develop' into feature/ECKIT-635_fam-backend-map
mcakircali Jul 3, 2025
1e25ef3
ECKIT-635: cleanup fam object name
mcakircali Jul 3, 2025
5f43e70
ECKIT-635: fix magic number fam property
mcakircali Jul 3, 2025
240a79d
ECKIT-635: rule of five for FamName
mcakircali Jul 3, 2025
424213f
ECKIT-635: FamName param case
mcakircali Jul 3, 2025
05f1ea7
ECKIT-635: fix fam hash table
mcakircali Jul 7, 2025
47e2704
ECKIT-635: param case
mcakircali Jul 7, 2025
556090b
Merge branch 'develop' into feature/ECKIT-635_fam-backend-map
mcakircali Jul 9, 2025
400e330
ECKIT-635: include
mcakircali Jul 9, 2025
a56d42b
FDB-537 famobejctname and famurimanager
mcakircali Aug 18, 2025
3a60716
wip fam map
mcakircali Aug 18, 2025
3e3c988
Merge branch 'develop' into feature/ECKIT-635_fam-backend-map
mcakircali Aug 18, 2025
5907c2b
Merge branch 'develop' into feature/ECKIT-635_fam-backend-map
mcakircali Aug 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ doc/latex
.idea
build/
*.ccls-cache
compile_commands.json
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,13 @@ if( NOT TARGET OpenMP::OpenMP_CXX )
set( eckit_HAVE_OMP 0 )
endif()

### OpenFAM Support

ecbuild_add_option( FEATURE OPENFAM
DEFAULT OFF
REQUIRED_PACKAGES "LibUUID REQUIRED" "OpenFAM 3.2.0 REQUIRED"
DESCRIPTION "Enables OpenFAM support" )

### RADOS

ecbuild_add_option( FEATURE RADOS
Expand Down
108 changes: 108 additions & 0 deletions cmake/FindLibUUID.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Copyright 2024- European Centre for Medium-Range Weather Forecasts (ECMWF)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# In applying this licence, ECMWF does not waive the privileges and immunities
# granted to it by virtue of its status as an intergovernmental organisation nor
# does it submit to any jurisdiction.
#
# Requires:
# FindPackageHandleStandardArgs (CMake standard module)
#

#[=======================================================================[.rst:
FindLibUUID
--------

This module finds the libuuid (from util-linux) library.

Imported Targets
^^^^^^^^^^^^^^^^

This module provides the following imported targets, if found:

``LibUUID``
The libuuid library

Result variables
^^^^^^^^^^^^^^^^

This module will set the following variables in your project:

``LIB_UUID_FOUND``
True if the libuuid library is found.
``LIB_UUID_INCLUDE_DIRS``
Include directories needed to use libuuid.
``LIB_UUID_LIBRARIES``
Libraries needed to link to libuuid.

Cache variables
^^^^^^^^^^^^^^^

The following cache variables may also be set to help find libuuid library:

``LIB_UUID_INCLUDE_DIR``
where to find the libuuid headers.
``LIB_UUID_LIBRARY``
where to find the libuuid library.

Hints
^^^^^

The environment variables ``LIB_UUID_ROOT``, ``LIB_UUID_DIR``, and ``LIB_UUID_PATH``
may also be set to help find libuuid library.

#]=======================================================================]

find_path(LIB_UUID_INCLUDE_DIR uuid.h
HINTS
${LIB_UUID_ROOT}
${LIB_UUID_DIR}
${LIB_UUID_PATH}
ENV LIB_UUID_ROOT
ENV LIB_UUID_DIR
ENV LIB_UUID_PATH
PATH_SUFFIXES uuid
)

find_library(LIB_UUID_LIBRARY
NAMES uuid
HINTS
${LIB_UUID_ROOT}
${LIB_UUID_DIR}
${LIB_UUID_PATH}
ENV LIB_UUID_ROOT
ENV LIB_UUID_DIR
ENV LIB_UUID_PATH
PATH_SUFFIXES lib lib64
)

include(FindPackageHandleStandardArgs)

find_package_handle_standard_args(LibUUID REQUIRED_VARS
LIB_UUID_LIBRARY
LIB_UUID_INCLUDE_DIR)

if (LibUUID_FOUND)
set(LIB_UUID_LIBRARIES ${LIB_UUID_LIBRARY})
set(LIB_UUID_INCLUDE_DIRS ${LIB_UUID_INCLUDE_DIR})
if(NOT TARGET LibUUID)
add_library(LibUUID UNKNOWN IMPORTED)
set_target_properties(LibUUID PROPERTIES
IMPORTED_LOCATION "${LIB_UUID_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${LIB_UUID_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES "${LIB_UUID_LIBRARY}")
endif()
endif()

mark_as_advanced(LIB_UUID_INCLUDE_DIR LIB_UUID_LIBRARY)
36 changes: 36 additions & 0 deletions src/eckit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,41 @@ list(APPEND eckit_message_srcs
message/Splitter.h
)

if(HAVE_OPENFAM)
list(APPEND eckit_io_srcs
io/fam/detail/FamSessionDetail.cc
io/fam/FamConfig.h
io/fam/FamHandle.cc
io/fam/FamHandle.h
io/fam/FamList.cc
io/fam/FamList.h
io/fam/FamListIterator.cc
io/fam/FamListIterator.h
io/fam/FamMap.cc
io/fam/FamMap.h
io/fam/FamMapIterator.cc
io/fam/FamMapIterator.h
io/fam/FamName.cc
io/fam/FamName.h
io/fam/FamObject.cc
io/fam/FamObject.h
io/fam/FamObjectName.cc
io/fam/FamObjectName.h
io/fam/FamPath.cc
io/fam/FamPath.h
io/fam/FamProperty.cc
io/fam/FamProperty.h
io/fam/FamRegion.cc
io/fam/FamRegion.h
io/fam/FamRegionName.cc
io/fam/FamRegionName.h
io/fam/FamSessionManager.cc
io/fam/FamSessionManager.h
io/fam/FamURIManager.cc
io/fam/FamURIManager.h
)
endif(HAVE_OPENFAM)

if(HAVE_RADOS)
list( APPEND eckit_io_srcs
io/rados/RadosHandle.cc
Expand Down Expand Up @@ -951,6 +986,7 @@ ecbuild_add_library(
"${CURL_LIBRARIES}"
"${AIO_LIBRARIES}"
"${RADOS_LIBRARIES}"
$<${HAVE_OPENFAM}:OpenFAM::openfam>

PUBLIC_LIBS
${CMATH_LIBRARIES}
Expand Down
12 changes: 11 additions & 1 deletion src/eckit/exception/Exceptions.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@
* does it submit to any jurisdiction.
*/

#include "eckit/exception/Exceptions.h"

#include <unistd.h>

#include <csignal>
#include <cstdlib>

#include "eckit/config/LibEcKit.h"
#include "eckit/exception/Exceptions.h"
#include "eckit/log/Log.h"
#include "eckit/os/BackTrace.h"
#include "eckit/thread/ThreadSingleton.h"
Expand Down Expand Up @@ -152,6 +153,15 @@ Cancel::Cancel(const std::string& w, const CodeLocation& loc) : Exception("Cance

Retry::Retry(const std::string& w, const CodeLocation& loc) : Exception("Retry: " + w, loc) {}

PermissionDenied::PermissionDenied(const std::string& w, const CodeLocation& loc) :
Exception("Permission denied: " + w, loc) {}

NotFound::NotFound(const std::string& w, const CodeLocation& loc) : Exception("Not found: " + w, loc) {}

AlreadyExists::AlreadyExists(const std::string& w, const CodeLocation& loc) : Exception("Already exists: " + w, loc) {}

OutOfStorage::OutOfStorage(const std::string& w, const CodeLocation& loc) : Exception("Out of storage: " + w, loc) {}

UserError::UserError(const std::string& w, const CodeLocation& loc) : Exception("UserError: " + w, loc) {}

UserError::UserError(const std::string& user, const std::string& w, const CodeLocation& loc) :
Expand Down
24 changes: 24 additions & 0 deletions src/eckit/exception/Exceptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,30 @@ class Retry : public Exception {
explicit Retry(const std::string&, const CodeLocation& = {});
};

class PermissionDenied : public Exception {
public:

explicit PermissionDenied(const std::string& /* w */, const CodeLocation& = {});
};

class NotFound : public Exception {
public:

explicit NotFound(const std::string& /* w */, const CodeLocation& = {});
};

class AlreadyExists : public Exception {
public:

explicit AlreadyExists(const std::string& /* w */, const CodeLocation& = {});
};

class OutOfStorage : public Exception {
public:

explicit OutOfStorage(const std::string& /* w */, const CodeLocation& = {});
};

class UserError : public Exception {
public:

Expand Down
3 changes: 3 additions & 0 deletions src/eckit/filesystem/URI.cc
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ URI::URI(const std::string& scheme, const URI& uri, const std::string& hostname,
fragment_(uri.fragment_),
queryValues_(uri.queryValues_) {}

URI::URI(std::string scheme, const net::Endpoint& endpoint, std::string name) noexcept :
name_(std::move(name)), scheme_(std::move(scheme)), host_(endpoint.host()), port_(endpoint.port()) {}

URI::URI(Stream& s) {
s >> scheme_;
s >> user_;
Expand Down
6 changes: 5 additions & 1 deletion src/eckit/filesystem/URI.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "eckit/io/Offset.h"
#include "eckit/net/Endpoint.h"

#include <string>

namespace eckit {

Expand All @@ -49,6 +50,7 @@ class URI {
URI(const std::string& scheme, const URI& uri);
URI(const std::string& scheme, const std::string& hostname, int port);
URI(const std::string& scheme, const URI& uri, const std::string& hostname, int port);
URI(std::string scheme, const net::Endpoint& endpoint, std::string name) noexcept;
URI(Stream& s);

// Destructor
Expand All @@ -63,7 +65,9 @@ class URI {
DataHandle* newReadHandle(const OffsetList&, const LengthList&) const;
DataHandle* newReadHandle() const;

void endpoint(const eckit::net::Endpoint& endpoint) {
net::Endpoint endpoint() const { return {host_, port_}; }

void endpoint(const net::Endpoint& endpoint) {
host_ = endpoint.host();
port_ = endpoint.port();
}
Expand Down
2 changes: 2 additions & 0 deletions src/eckit/io/Buffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ class Buffer : private NonCopyable {

~Buffer();

std::string_view view() const noexcept { return std::string_view(buffer_, size_); }

operator char*() { return buffer_; }
operator const char*() const { return buffer_; }

Expand Down
47 changes: 47 additions & 0 deletions src/eckit/io/fam/FamConfig.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
* (C) Copyright 1996- ECMWF.
*
* This software is licensed under the terms of the Apache Licence Version 2.0
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
* In applying this licence, ECMWF does not waive the privileges and immunities
* granted to it by virtue of its status as an intergovernmental organisation nor
* does it submit to any jurisdiction.
*/

/*
* This software was developed as part of the Horizon Europe programme funded project OpenCUBE
* (Grant agreement: 101092984) horizon-opencube.eu
*/

/// @file FamConfig.h
/// @author Metin Cakircali
/// @date May 2024

#pragma once

#include <ostream>
#include <string>

#include "eckit/net/Endpoint.h"

namespace eckit {

//----------------------------------------------------------------------------------------------------------------------

struct FamConfig {
net::Endpoint endpoint{"127.0.0.1", -1};
std::string sessionName{"EckitFamSession"};

bool operator==(const FamConfig& other) const {
return (endpoint == other.endpoint && sessionName == other.sessionName);
}

friend std::ostream& operator<<(std::ostream& out, const FamConfig& config) {
out << "endpoint=" << config.endpoint << ", sessionName=" << config.sessionName;
return out;
}
};

//----------------------------------------------------------------------------------------------------------------------

} // namespace eckit
Loading
Loading