Skip to content

Commit

Permalink
Add remaining missing commands and models
Browse files Browse the repository at this point in the history
  • Loading branch information
0xg0nz0 committed Feb 20, 2024
1 parent a635afb commit d214dd2
Show file tree
Hide file tree
Showing 2 changed files with 385 additions and 18 deletions.
123 changes: 115 additions & 8 deletions sdk/command.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,134 @@ class Command {
* @brief Commands related to managing Iggy streams.
*/
namespace stream {
class GetStream : Command {};
class GetStream : Command {
private:
iggy::model::shared::Identifier streamId;
public:
GetStream(iggy::model::shared::Identifier streamId)
: streamId(streamId) {}

iggy::model::shared::Identifier getStreamId() const { return streamId; }
};

class GetStreams : Command {};
class CreateStream : Command {};
class DeleteStream : Command {};
class CreateStream : Command {
private:
iggy::model::shared::Identifier streamId;
std::string name;

public:
CreateStream(iggy::model::shared::Identifier streamId, std::string name)
: streamId(streamId)
, name(name) {}

iggy::model::shared::Identifier getStreamId() const { return streamId; }
std::string getName() const { return name; }
};

class DeleteStream : Command {
private:
iggy::model::shared::Identifier streamId;
public:
DeleteStream(iggy::model::shared::Identifier streamId)
: streamId(streamId) {}

iggy::model::shared::Identifier getStreamId() const { return streamId; }
};
} // namespace stream

/**
* @brief Commands related to managing Iggy topics.
*/
namespace topic {
class GetTopic : Command {};
class GetTopics : Command {};
class CreateTopic : Command {};
class GetTopic : Command {
private:
iggy::model::shared::Identifier streamId;
iggy::model::shared::Identifier topicId;

public:
GetTopic(iggy::model::shared::Identifier streamId, iggy::model::shared::Identifier topicId)
: streamId(streamId)
, topicId(topicId) {}

iggy::model::shared::Identifier getStreamId() const { return streamId; }
iggy::model::shared::Identifier getTopicId() const { return topicId; }
};

class GetTopics : Command {
private:
iggy::model::shared::Identifier streamId;
public:
GetTopics(iggy::model::shared::Identifier streamId)
: streamId(streamId) {}

iggy::model::shared::Identifier getStreamId() const { return streamId; }
};

class CreateTopic : Command {
private:
iggy::model::shared::Identifier streamId;
uint32_t topicId;
uint32_t partitionsCount;
std::optional<uint32_t> messageExpiry;
std::string name;

public:
CreateTopic(iggy::model::shared::Identifier streamId, uint32_t topicId, uint32_t partitionsCount,
std::optional<uint32_t> messageExpiry, std::string name)
: streamId(streamId)
, topicId(topicId)
, partitionsCount(partitionsCount)
, messageExpiry(messageExpiry)
, name(name) {}

iggy::model::shared::Identifier getStreamId() const { return streamId; }
uint32_t getTopicId() const { return topicId; }
uint32_t getPartitionsCount() const { return partitionsCount; }
std::optional<uint32_t> getMessageExpiry() const { return messageExpiry; }
std::string getName() const { return name; }
};
} // namespace topic

/**
* @brief Commands related to managing Iggy partitions.
*/
namespace partition {
class CreatePartitions : Command {};
class DeletePartitions : Command {};
class CreatePartitions : Command {
private:
iggy::model::shared::Identifier streamId;
iggy::model::shared::Identifier topicId;
uint32_t partitionsCount;

public:
CreatePartitions(iggy::model::shared::Identifier streamId, iggy::model::shared::Identifier topicId,
uint32_t partitionsCount)
: streamId(streamId)
, topicId(topicId)
, partitionsCount(partitionsCount) {}

iggy::model::shared::Identifier getStreamId() const { return streamId; }
iggy::model::shared::Identifier getTopicId() const { return topicId; }
uint32_t getPartitionsCount() const { return partitionsCount; }
};

class DeletePartitions : Command {
private:
iggy::model::shared::Identifier streamId;
iggy::model::shared::Identifier topicId;
uint32_t partitionsCount;

public:
DeletePartitions(iggy::model::shared::Identifier streamId, iggy::model::shared::Identifier topicId,
uint32_t partitionsCount)
: streamId(streamId)
, topicId(topicId)
, partitionsCount(partitionsCount) {}

iggy::model::shared::Identifier getStreamId() const { return streamId; }
iggy::model::shared::Identifier getTopicId() const { return topicId; }
uint32_t getPartitionsCount() const { return partitionsCount; }
};
} // namespace partition

/**
Expand Down
Loading

0 comments on commit d214dd2

Please sign in to comment.